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'

[2つの日付の間のfield1列のすべての値の結果を表示するためにfield1値を省略しました]が、パラメーター値を要求します。

4

1 に答える 1

2

呼び出しのフィールドを省略する場合は、プロシージャの宣言でデフォルト値を指定する必要があります。

create procedure procedurename (
    @startdate datetime, 
    @enddate endtime, 
    @field1 varchar(15) = NULL
)
AS
...
于 2012-08-31T14:55:53.567 に答える