SQL 代理作业依赖调度

SQL Agent Job Dependency Scheduling

我试图在 SQL Agent 中解决以下情况。

作业 2 需要在凌晨 1 点开始,但依赖于作业 1。

我一直在想是否有办法安排一个特定的步骤?这样我就可以让第 2 步依赖于第 1 步,并将其安排在以后的时间,而不是拥有作业 2。

或者,我知道我可以构建一个 table 来确定依赖性。类似于 。 但是,我希望让它足够智能,如果作业 1 尚未在预定时间完成,作业 2 将在稍后的时间间隔再次尝试 运行。

有不同的方法。

一个是

1) 在作业 1 中创建最后一步以启动作业 2

exec msdb.dbo.sp_start_job @job_name = 'enter you job name here'

2) 作业 2 的第一步应该是 TSQL 命令

WIATFOR DELAY xx:yy:zz

xx、yy、zz 值应计算为现在和要求的凌晨 1 点之间的时差。

如果 NOW() 大于凌晨 1 点,则退出(完成)步骤 1 以立即执行步骤 2。

请注意,不应安排本例中的作业 2。

另一种方法:

在作业 2 中,WHILE 循环的第一步检查作业 1 的状态(代码可以很容易地在网上找到),但有一些延迟,例如1分钟。循环退出条件是作业 1 完成时。