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

本文关键字:代理 运行时间 SQL 范围内 时间 | 更新日期: 2023-09-27 18:14:40

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

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

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

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

然而,对于你只有一个时间表的简单情况,我认为你可以这样做:

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

您只能在创建作业时执行一次此操作,并持久化结果。因此,您消除了每次需要评估运行时时修改作业的风险(因为更改ActiveStartDate实际上会修改调度)。