【问题标题】:SQL - Raise error in Sproc when the select result set is emptySQL - Raise error in Sproc when the select result set is empty
【发布时间】:2011-04-29 16:10:20
【问题描述】:

我正在尝试在 SQL JOB 步骤 (SQL Server 2005) 中执行存储过程。
当我正在执行的存储过程的结果集不为空时,我想引发错误并使作业步骤失败。

我的存储过程所做的是——我有一个选择语句,如果当前日期等于表的某一列中的日期,则在其中显示行。

SELECT 
Holiday_date
from tblHolidays 
where 
CONVERT(VARCHAR(10),GETDATE(),101) = CONVERT(VARCHAR(10),Holiday_date,101)

如果结果集为空,我想成功完成作业步骤并继续下一个作业步骤。

关于如何让它发挥作用的任何想法。

谢谢

【问题讨论】:

    标签: sql sql-server-2005


    【解决方案1】:

    您可以尝试RAISERROR 虽然我不记得这是否会导致整个工作失败,如果它确实尝试警告severity levels 之一。

    IF @@ROWCOUNT > 0
      RAISERROR ('found data', 16, 1)
    

    【讨论】:

    • 必须是IF @@ROWCOUNT <= 0 - 结果集为空时引发错误
    • 是的,但是当有记录时,我将操作读取为想要错误。
    • Alex 是对的,我想在有记录的时候提出错误
    • 我能够捕获自定义错误消息并在 SQL JOB 的作业历史记录中退出该作业。在高级选项选项卡下设置 sproc exec 作业步骤时,我必须选择该选项。谢谢亚历克斯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 2013-09-30
    • 2022-12-19
    • 2020-11-11
    • 2011-12-25
    • 2022-12-01
    相关资源
    最近更新 更多