我有几个工作包,我在 sql server 代理中设置了一个工作。有时我应该一起跑。以给定的顺序运行它们的最佳方法是什么?我有点惊讶 sql server 代理无法将作业作为要执行的作业步骤包含在内。我确实尝试过
SQL Agent 不被视为“企业级”作为作业调度程序。它缺少许多您最终必须自己构建的功能。一个这样的例子是依赖关系。因此,您被迫将大部分逻辑放入 SSIS 包中。不一定是坏事......只是建立和管理自己的痛苦。
所以,这就是我的答案,构建一个 SSIS 包并使用一些 t-sql 命令根据需要调用 SQL 代理作业。确保您明确定义了您的要求和场景。例如,您可能不希望多个作业同时访问同一个表。
HTH
如果您没有足够的学习曲线时间或现有的专业知识来使用 SSIS,那么有 3rd 方工具可以让您做到这一点。免责声明:我为其中一家公司工作。查看 SQL Sentry - 它处理 SQL Server 作业(包括 SSIS 包)、Windows 计划任务,甚至 Oracle 作业。以下是 SQL Server 功能(包括链接和排队):
不幸的是,我认为您无法单独使用 SQL Agent 来链接多个作业。Marian 建议的 sp_start_job 方法异步启动作业;在继续执行下一个命令或下一步之前,您不能等待它们完成。