【问题标题】:Schedule job between days在几天之间安排工作
【发布时间】:2018-10-13 07:03:56
【问题描述】:

如何使用 SQL Server 代理作业在每月的 10 号到 17 号之间安排 SSIS 包?

在 10 日和 17 日之间,作业应该每 30 分钟运行一次。

查询:

SELECT 
    CASE 
       WHEN DATEPART(DD, GETDATE()) BETWEEN 10 AND 17 
          THEN 1 
          ELSE 0
    END DAYSFLAG

我不知道,如何将作业设置为仅在每月 10 日至 17 日之间以及每 30 分钟运行一次?

请告诉我如何在 SQL Server 代理作业中完成此任务。

【问题讨论】:

    标签: sql-server sql-server-2008 ssis ssis-2012 sql-agent-job


    【解决方案1】:

    您可以安排您的作业每天每 30 分钟运行一次,然后在您的作业开始时,您可以添加一个 Transact-SQL 脚本 (T-SQL) 步骤来检查当前日期介于 10 和 17 之间。

    • 如果当天在 10 到 17 之间,则作业将继续
    • 如果当前日期不在 10 到 17 之间,则作业将终止。要终止脚本,您可以在不满足日历日的条件时引发错误

    要执行此检查,您可以使用以下内容:

    if DATEPART(DD, GETDATE()) not BETWEEN 10 AND 17 
        RAISERROR ('Current day is not between 10 and 17, the job must not run', 16, 1)
    

    【讨论】:

    • 嗨,如果当前日期不在 10 到 17 之间,则作业将终止。没有给出错误。上面的脚本给出错误。如何设计没有失败的工作(即使工作不在10到17之间,
    【解决方案2】:

    为了完成您想要的操作,按照 andrea 的建议进行操作,并将第 1 步创建为 Transact SQL,如果日期不在 10 到 17 之间,则会出现错误。然后转到高级选项卡并在“失败操作”下选择“退出作业报告成功”,这将终止该作业作为该步骤的成功。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-07
      • 2023-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-11
      • 1970-01-01
      相关资源
      最近更新 更多