在一个作业中运行两个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,则仅当第一个作业完成时才会执行(假设在前一个作业成功时转到下一个步骤)。这样做有点过分了。。