输入参数为null时打印错误消息并终止该过程

时间:2015-08-28 16:15:33

标签: sql-server sql-server-2008 tsql

我正在编写一个SQL存储过程,有一个输入参数是必需的。如果在过程开始时参数为null并终止过程,我怎么能输出文本错误消息?

IF NULLIF(@P_Currentperiod, '') IS NULL
    BEGIN 
    --????

    RETURN
    END
ELSE

任何帮助都会非常感激!

1 个答案:

答案 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
  • RAISERROR :通知错误
  • 返回:终止程序

更新:

对于在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}] [; ]