SQL作业计划在假期不运行

时间:2011-10-04 10:39:07

标签: sql-server sql-agent-job

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

我真的不知道如何处理这个问题。我是否需要创建第一步,检查它是否是假日,如果是,则会失败?

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

1 个答案:

答案 0 :(得分:5)

点子:

  1. SQL Server代理运行作业
  2. 第一步是“检查假期”
  3. 代码抛出错误
  4. 工作步骤无声地失败
  5. 第3点:要从存储过程到SQL Server代理获取错误,请使用RAISERROR

    ...
    IF EXISTS (SELECT * FROM Holidays WHERE Date = GETDATE())
       RAISERROR ('Do nothing: relax: chill out', 16, 1);
    ...
    

    要点4:在这种情况下,使用“退出成功”(1)将@on_fail_action参数添加到sp_add_jobstep