运行SQL代理的SQL代理不会在步骤之间等待

时间:2015-06-01 12:53:09

标签: sql-server sql-server-2008

我有一个SQL代理作业,我希望使用以下内容启动其他4个SQL代理作业:

DependencyProperty

现在每个工作都是自己的步骤,但是,工作不等待工作成功完成,它只是开始下一步,所以所有4个工作都在同时运行。有没有办法让它在开始下一份工作之前等待?

由于

2 个答案:

答案 0 :(得分:2)

SQL代理作业步骤在进入下一步之前等待它收到“成功”消息。但是,当该步骤调用msdb.dbo.sp_start_job时,它会在目标作业启动后立即收到“成功”消息。消息是说“是的,我成功地开始了工作”。

如果这是您使用的方法,则无法让它等待完成该作业。

但是,如果您将五个作业合并为一个作业,并按所需顺序执行步骤,则每个步骤将等到上一步完成后再开始。

答案 1 :(得分:2)

我之前已经等了这个:

WAITFOR DELAY '00:00:02';
while exists (select * from msdb.dbo.sysjobs j 
                inner join msdb.dbo.sysjobactivity a on j.job_id = a.job_id 
                where name = 'My Other Job' 
                and stop_execution_date is null and start_execution_date is not null)
begin
    WAITFOR DELAY '00:00:02';   
end

你可以暂停任何有意义的事情。我的工作相对较小,所以我在检查之间只等了2秒钟。