SQL Server 2008 でいくつかのストアド プロシージャを作成していますが、ここでオプションの入力パラメーターの概念が可能かどうか疑問に思いましたか?
使用したくないパラメーターには常に NULL を渡し、ストアド プロシージャの値を確認してから、そこから取得できると思いますが、ここでその概念が利用できるかどうかに興味がありました。ありがとう!
SQL Server 2008 でいくつかのストアド プロシージャを作成していますが、ここでオプションの入力パラメーターの概念が可能かどうか疑問に思いましたか?
使用したくないパラメーターには常に NULL を渡し、ストアド プロシージャの値を確認してから、そこから取得できると思いますが、ここでその概念が利用できるかどうかに興味がありました。ありがとう!
このように宣言できます
CREATE PROCEDURE MyProcName
@Parameter1 INT = 1,
@Parameter2 VARCHAR (100) = 'StringValue',
@Parameter3 VARCHAR (100) = NULL
AS
/* check for the NULL / default value (indicating nothing was passed */
if (@Parameter3 IS NULL)
BEGIN
/* whatever code you desire for a missing parameter*/
INSERT INTO ........
END
/* and use it in the query as so*/
SELECT *
FROM Table
WHERE Column = @Parameter
はい、そうです。パラメータを次のように宣言します。
@Sort varchar(50) = NULL
これで、パラメーターを渡す必要さえなくなりました。デフォルトで NULL (またはデフォルトとして選択したもの) になります。