Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 当存储过程中省略参数值时,希望所有值都显示该值_Sql Server 2005 - Fatal编程技术网

Sql server 2005 当存储过程中省略参数值时,希望所有值都显示该值

Sql server 2005 当存储过程中省略参数值时,希望所有值都显示该值,sql-server-2005,Sql Server 2005,在存储过程中,当未指定参数值时,我希望它显示列中所有值的结果 我尝试了下面的代码,但如果在执行时将参数field1留空,它将不起作用,并要求提供field1值 create procedure procedurename declare @startdate datetime, @enddate endtime, @field1 varchar(15) select * from table1 where field1 = @xyz or @xyz is null and date betwe

在存储过程中,当未指定参数值时,我希望它显示列中所有值的结果

我尝试了下面的代码,但如果在执行时将参数field1留空,它将不起作用,并要求提供field1值

create procedure procedurename
declare @startdate datetime, @enddate endtime, @field1 varchar(15)

select * from table1
where field1 = @xyz or @xyz is null
and date between @startdate and @enddate

execute procedurename @startdate = '01/07/2012', @enddate = '31/07/2012'

[我省略了field1值,以便它显示两个日期之间field1列中所有值的结果],但它要求参数值。

如果要在调用中省略字段,则需要在过程声明中提供默认值

create procedure procedurename (
    @startdate datetime, 
    @enddate endtime, 
    @field1 varchar(15) = NULL
)
AS
...