我有一个 SQL 代理作业,它有多个步骤,计划在周一至周五的某个时间运行。我需要能够在此作业上实现停止功能,以免在表中列出的假期运行。

我真的不知道如何处理这个。我是否需要创建第一步来检查它是否是假期,然后如果是假期则无法完成工作?

我有一个存储过程,它会检查我通过的日期是否是假期,我只是不知道如何强制它报告失败,如果结果是是,它是假期。任何帮助将不胜感激。

最佳答案

主意:

  • SQL Server 代理运行作业
  • 第一步是“检查假期”
  • 代码抛出错误
  • 作业步骤静默失败

  • Point 3:从存储过程获取错误到SQL Server Agent,使用RAISERROR
    ...
    IF EXISTS (SELECT * FROM Holidays WHERE Date = GETDATE())
       RAISERROR ('Do nothing: relax: chill out', 16, 1);
    ...
    

    要点4:这种情况下,sp_add_jobstep@on_fail_action参数使用“Quit with success”(1)

    关于sql-server - SQL 作业计划在假期不运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7646613/

    10-13 09:28