SQL代理作业依赖性调度

时间:2016-08-31 23:29:30

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

我有以下方案,我试图在SQL Agent中解决。

Job 2需要启动@ 1AM,但依赖于Job 1。

我一直试图弄清楚是否有办法安排特定步骤?这样,我可以让第2步依赖于第1步,而不是拥有第2步,并将其安排在以后的时间。

或者,我知道我可以构建一个表来确定依赖性。与SQL Server Agent job dependency相似。 但是,我希望足够聪明,如果作业1在预定时间内尚未完成,则作业2将尝试再次运行。

1 个答案:

答案 0 :(得分: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值应计算为现在和所需的1AM之间的时差。

如果NOW()大于1AM,则退出(完成)步骤1以立即执行步骤2.

请注意,不应安排此情况下的作业2。

另一种方法

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