【问题标题】:Terminating a job in SQL Server during runtime在运行时终止 SQL Server 中的作业
【发布时间】:2014-05-07 17:21:59
【问题描述】:

有没有办法让计划的作业在该作业的存储过程中终止(停止、退出、停止执行、报告失败)?

例如,我在 TRY 块中有一些检查查询,它们执行 RAISERROR (59834,16,1) 以转到 CATCH 块发送一封电子邮件,说检查查询发现了一个不好的情况,工作必须停止。数字 59834 是任意但具体的。 但是,每次我测试作业时,即使我提出了错误,作业也会继续执行;它从不报告失败。

我尝试在 CATCH 块中使用与在 TRY 块中相同的 RAISERROR,但这也不起作用。

我希望作业在这个实例中停止,它将每天运行。

【问题讨论】:

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


    【解决方案1】:

    听起来 XACT_ABORT 设置未打开。如果没有开启 XACT_ABORT,无论遇到任何错误,都会继续执行。有关 XACT_ABORT 的更多信息:

    Microsoft BOL entry for XACT_ABORT

    What is the benefit of using SET XACT_ABORT ON in a stored procedure?

    因此,您可以考虑在工作开始时使用SET XACT_ABORT ON

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多