确定时间范围内SQL代理的预期运行时间

时间:2014-07-25 08:55:37

标签: c# sql-server sql-agent-job

是否有一种可靠的方法来确定给定sql代理在给定时间范围内的运行时间?

我有一个Microsoft.SqlServer.Management.Smo.Agent.Job对象,但希望避免重新创建逻辑以根据其计划计算运行时间。我希望有一些内置的功能。

1 个答案:

答案 0 :(得分:1)

不,不幸的是没有。当你的工作有多个时间表时,检测到这一点会更复杂。

但是,对于只有1个时间表的简单情况,我认为您可以执行以下操作:

  • 查询作业NextRunDate
  • 将计划的ActiveStartDate设置为下一个运行日期。
  • 重复,直到你弥补你的间隔。
  • 最后确保将ActiveStartDate设置为其初始值。

创建作业时,您只能执行此操作一次,并保留结果。因此,每次需要评估运行时间时,都可以消除修改作业的风险(因为更改ActiveStartDate实际上会修改计划)。