私はあなたがmodule
によって何を意味するか、完全に一定ではないんだけど、あなたはストアドプロシージャを作成する場合は、変数は、そのスコープ内に存在するものの特定することができます。
CREATE PROCEDURE myStoredProcedure (@var1 AS INT = NULL, @var2 AS INT = NULL)
AS
BEGIN
DECLARE @var3 INT
IF (@var1 IS NULL)
SET @var3 = 'Nothing was passed in for @var1'
IF (@var1 IS NULL AND @var2 IS NULL)
SET @var3 = @var3 + ', '
IF (@var2 IS NULL)
SET @var3 = @var3 + 'Nothing was passed in for @var2'
SELECT
@var1, @var2, @var3
END
パラメータはオプションですが、デカールされ、デフォルト値(この場合はNULL)を持ちます。したがって、宣言をチェックする必要はなく、値のみをチェックする必要があります。
私はあなたがこれを行う必要がある理由と、あなたが言及した "パラメータ"をどのように渡しているかについて、より詳細な説明をする必要があると思います。変数を2回宣言するのはコンパイルエラーなので、実行時にCATCHすることはできません。 – Pondlife