区分存储过程中的用户提供的和默认的可选参数

时间:2011-11-10 13:28:03

标签: sql-server tsql stored-procedures

我创建了一个存储过程,其中包含一个可选参数,默认为NULL

CREATE PROCEDURE P_Test
@Param int = NULL
AS 
BEGIN     
    SELECT @Param
END

现在的问题是:我希望看到提供任何内容的用户(EXEC P_Test)与明确提供NULLEXEC P_Test @Param = NULL)的用户之间存在差异;

有没有办法在T-SQL中检测到这一点? @Param的默认值应该是其他吗?

1 个答案:

答案 0 :(得分:0)

我不知道TSQL中的is_supplied(@param)类型构造,你可以沿着“魔数”的可怕路线走下去,并将其默认为-1以让你区分。