我正在编写一个SQL存储过程,有一个输入参数是必需的。如果在过程开始时参数为null并终止过程,我怎么能输出文本错误消息?
IF NULLIF(@P_Currentperiod, '') IS NULL
BEGIN
--????
RETURN
END
ELSE
任何帮助都会非常感激!
答案 0 :(得分:5)
如果我们可以选择限制SP NULL
中的paramaters
值,那么它会很好,但我们没有这样的选项,所以请尝试这样的事情
if @P_Currentperiod is null
Begin
raiserror('P_Currentperiod parameter cannot be null', 15, 1)
RETURN -- To terminate the procedure.
END
更新:
对于在Sql server 2012或更高版本中寻找相同选项的人,请使用THROW
if @P_Currentperiod is null
Begin
THROW 51000, 'P_Currentperiod parameter cannot be null.', 1;
END
引发异常并将执行转移到a的CATCH块 SQL Server 2016中的TRY ... CATCH构造。
<强>语法强>
THROW [{error_number | @local_variable}, {message | @local_variable}, {state | @local_variable}] [; ]