【发布时间】:2015-06-02 00:39:19
【问题描述】:
我有一个 SQL 代理作业,我想使用以下方法启动其他 4 个 SQL 代理作业:
EXEC msdb.dbo.sp_start_job 'My Other Job'
现在每个作业都有自己的步骤,但是,作业不会等待作业是否成功完成,它只是开始下一步,因此所有 4 个都同时运行。有没有办法让它在开始下一个工作之前等待?
谢谢
【问题讨论】:
-
否,但可能有一种解决方法可以解决您需要做的事情。就不能在你的主要工作中做其他工作步骤的步骤吗?
-
这 4 个作业是跨网络的数据库恢复,因此它们的运行时间存在差异。我想避免跑步重叠。
-
This article 包含一个包含
sp_start_job的存储过程,并在退出过程之前等待作业完成。您可以使用它来使您的作业同步运行。 -
看来你不是一个人在这个问题上,a connect item 被打开以使
sp_start_job同步运行,不幸的是这个已经关闭了,因为不会修复。我认为唯一的选择是创建自己的侦听器以继续检查作业是否已完成,或者创建一个结合单独作业的所有步骤的单个作业,两者都不是很理想!
标签: sql-server sql-server-2008