Я не совсем уверен, что вы подразумеваете под 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).Таким образом, вам не нужно проверять объявления, только значения.