确定某个时间范围内SQL代理的预期运行时间
本文关键字:代理 运行时间 SQL 范围内 时间 | 更新日期: 2023-09-27 18:14:40
是否有一种可靠的方法来确定给定sql代理在给定时间范围内运行的时间?
我有一个Microsoft.SqlServer.Management.Smo.Agent.Job
对象,但希望避免必须重新创建逻辑来根据其调度计算运行时间。我希望有一些内置的功能。
不,不幸的是没有。当你的工作有多个时间表时,要检测到这一点就更复杂了。
然而,对于你只有一个时间表的简单情况,我认为你可以这样做:
- 查询作业的
NextRunDate
- 设置计划的
ActiveStartDate
为下一个运行日期。 - 重复到你的间隔。
- 最后确保将
ActiveStartDate
设置为初始值。
您只能在创建作业时执行一次此操作,并持久化结果。因此,您消除了每次需要评估运行时时修改作业的风险(因为更改ActiveStartDate实际上会修改调度)。