【问题标题】:T-SQL - Return custom error message and end queryT-SQL - 返回自定义错误消息并结束查询
【发布时间】:2010-07-15 13:56:35
【问题描述】:

我有一个冗长的存储过程,我想在其中执行以下操作:

IF @SubPageDirectory IS NULL
BEGIN
    RAISERROR('@SubPageDirectory cannot be NULL', 10, 1)
    EXIT STORED PROCEDURE
END

基本上我希望检查我的变量是否为NULL,如果是,则向我的.NET Web 应用程序返回一条错误消息,并在该阶段停止运行查询。我怎样才能做到这一点?

【问题讨论】:

    标签: sql-server-2005 tsql asp.net-3.5 raiserror


    【解决方案1】:
    IF @SubPageDirectory IS NULL 
    BEGIN 
        RAISERROR('@SubPageDirectory cannot be NULL', 16, 1) --change to > 10
        RETURN --exit now
    END 
    

    【讨论】:

    • @DaveShaw:不,它继续执行
    • RETURN 似乎返回没有任何错误,因为它不会向用户显示错误,它会继续。 RAISERROR 本身会继续读取存储过程,因为它会引发另一个错误。
    • +1,但是,我将其设为RETURN n,其中n 是一个整数。我制作负返回值警告消息(无效的用户输入等)和正返回值致命错误(插入失败等)。调用应用程序可以根据返回值为正/负来确定如何处理消息(硬停止和/或仅显示消息)。
    • 我已将严重级别提高到 16,现在我的 asp.net Web 应用程序显示服务器错误页面,这正是我所希望的。 Return 也阻止了查询继续。我之前忽略了严重级别增加的评论。
    • 对不起,意思是添加严重级别 16 表示“用户定义”。 10 是一个通常被忽略的警告
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 2022-01-01
    • 2011-06-16
    • 2011-08-28
    • 2020-06-16
    • 1970-01-01
    相关资源
    最近更新 更多