2012-08-31 77 views
2

,當未指定參數值時,我希望它顯示列中所有值的結果。當在存儲過程中忽略參數值時,希望它在存儲過程中顯示所有值

我嘗試了下面的代碼,但是如果在執行時將參數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' 

[I省略field1的值,使得它應該顯示導致在兩個日期之間FIELD1列中的所有的值]但它要求參數值。

回答

2

如果您要忽略通話中的字段,則需要在該程序的聲明中提供默認值。

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