日期:2014-05-17  浏览次数:20502 次

Sql Server Agent 的问题。怎么根据前一个 Job的运行结果来决定是否运行后一个Job
我有两个 Job: A和 B.
Job A 不定期地运行。 Job B 设定为 每天 零点运行。 我现在想在 Job B 中加入一个步骤(此步骤为Job B 的第一个步骤),用来判断 Job A 是否在之前24小时内成功运行,如果成功运行则继续运行 Job B 中剩余的步骤,如果失败或没有运行,则不运行 Job B 中剩下的步骤。
请问可以用 T-sql 来实现这个步骤吗?具体怎么实现?
sql?server 作业 步骤

------解决方案--------------------
引用:
我有两个 Job: A和 B.
Job A 不定期地运行。 Job B 设定为 每天 零点运行。 我现在想在 Job B 中加入一个步骤(此步骤为Job B 的第一个步骤),用来判断 Job A 是否在之前24小时内成功运行,如果成功运行则继续运行 Job B 中剩余的步骤,如果失败或没有运行,则不运行 Job B 中剩下的步骤。
请问可以用 T-sql 来实现这个步骤吗?具体怎么实现? 
……
一个job中的两个步骤需要连续运行,所以你这个想法需要使用两个job来实现。
------解决方案--------------------
通过查询
msdb下的几个系统表
sysjobs
sysjobservers
syscategories
查询JOB的运行状态
------解决方案--------------------
你从这个图中,创建两个job,如果第一个job失败,就转向下一步,也就是第二个job,成功就跳出,至于代码,可以用图中上面的【脚本】生成