SQL 运行 代理中的多个作业 sql

SQL Run multiple jobs in sql agent

我在 sql 代理工作中有 3 个工作,它们是姓名、工作 1、工作 2 和工作 3。

每个作业在作业中都有几个步骤。

我可以 运行 每个作业都手动完成。我想创建另一个工作来将所有这些和 运行 按顺序组合起来。

作业必须成功完成才能转到下一个作业等等。 我看到人们在存储过程中使用 sp_start_job,但我想在代理作业中使用 运行。

有人可以给我建议吗?谢谢。

我们可以做脚本 sp_start_job 等待第一个作业完成然后 运行 第二个作业等等

选项 1:启动第一个作业,并在代码末尾的每个作业中添加命令(使用 sp_start_job)以执行下一个作业。由于命令在最后出现,它将在其余代码之后执行,假设其余代码是简单查询,运行 同步。

选项 2:在主要工作中使用步骤(您也可以不使用步骤,但我喜欢将其分开)并在每个步骤中使用 sp_start_job.[=11 执行其中一项工作=]

在每一步的开始,使用简单的循环,在循环上加上 "WAITFOR DELAY '00:00:02';"。使用存储过程检查上一个作业是否完成 sp_help_jobactivity.

如果上一个作业结束则退出循环并继续,这意味着现在我们将执行下一个作业

选项 3(很疯狂,在大多数情况下可能不推荐):使用主作业中的分布式管理对象 (DMO) 通过 VBS 脚本一个接一个地执行作业。

希望这能解决您的需求。 我很快就会在我的博客中上传完整的代码...

更新:if the above short description does not clear then I uploaded a full example of the first two solutions.