152

SQL Server 2008 でいくつかのストアド プロシージャを作成していますが、ここでオプションの入力パラメーターの概念が可能かどうか疑問に思いましたか?

使用したくないパラメーターには常に NULL を渡し、ストアド プロシージャの値を確認してから、そこから取得できると思いますが、ここでその概念が利用できるかどうかに興味がありました。ありがとう!

4

3 に答える 3

241

このように宣言できます

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
于 2009-11-27T21:19:07.953 に答える
62

はい、そうです。パラメータを次のように宣言します。

@Sort varchar(50) = NULL

これで、パラメーターを渡す必要さえなくなりました。デフォルトで NULL (またはデフォルトとして選択したもの) になります。

于 2009-11-27T21:11:20.117 に答える