在一个作业中运行两个sql server作业不起作用
我们有一个在一个作业中运行两个sql server作业不起作用,sql,sql-server,sql-server-2012,sql-server-agent,Sql,Sql Server,Sql Server 2012,Sql Server Agent,我们有一个sql server代理作业,它运行两个sql服务作业。作业的设计方式是,第二个作业将等待直到第一个作业完成。但有时,wait不起作用,导致两个作业同时运行。这会导致两个作业都失败。我们将下面的代码用于等待机制 WHILE ( SELECT COUNT(*) AS cnt FROM msdb.dbo.sysjobs J INNER JOIN msdb.dbo.sysjobactivity JA
sql server代理
作业
,它运行两个sql服务作业
。作业
的设计方式是,第二个作业
将等待
直到第一个作业完成。但有时,wait
不起作用,导致两个作业同时运行。这会导致两个作业都失败。我们将下面的代码用于等待
机制
WHILE
(
SELECT COUNT(*) AS cnt
FROM msdb.dbo.sysjobs J
INNER JOIN msdb.dbo.sysjobactivity JA
ON J.job_id = JA.job_id
WHERE start_execution_date IS NOT NULL
AND stop_execution_date IS NULL
AND J.name = "first job name"
AND last_executed_step_date > DATEADD(DD,-1,GETDATE())--//Added to bypass historical corrupt data
) > 0
BEGIN
--WAIT
WAITFOR DELAY '00:01';
END
有什么建议为什么有时不起作用吗?为什么不将第二个作业添加为步骤2
?实际上我们已经添加了。有3个步骤…第一个作业的第一步…第二步是等待查询…第三步是第二个作业在第二个作业开始之前添加0:01秒的目的是什么?我希望…它会添加等待,直到第一个作业完成这里没有指向添加两个作业之间的时间间隔,如果将第二个作业添加为步骤2,则仅当第一个作业完成时才会执行(假设在前一个作业成功时转到下一个步骤)。这样做有点过分了。。