【问题标题】:Trigger a SQL Server job from another job从另一个作业触发 SQL Server 作业
【发布时间】:2018-09-01 16:55:44
【问题描述】:

有一个作业首先在初始步骤中生成数据,然后在后面的步骤中将数据复制到 4 个不同的服务器。因为我想要并行执行,所以我创建了另一个作业来处理将数据复制到 2 个服务器,并且最初存在的作业将数据复制到 2 个服务器。我想要一些机制在退出作业的数据生成的初始步骤成功运行后触发新作业。任何帮助将不胜感激!

【问题讨论】:

  • 我对 sql-server 几乎一无所知,但也许这会有所帮助? dba.stackexchange.com/questions/31104/…
  • 您可以创建自定义解决方案,但是由 SQL Server 代理触发的 SSIS 包将如何并行复制
  • @Lee 我想并行复制数据
  • @lad2025 你能解释一下吗?每一步复制其实已经是一个ssis包了。
  • @TanuJain 所以创建父包,它将并行执行子包,如here

标签: sql-server-2012 jobs


【解决方案1】:

您可以在要启动其他作业执行的任何位置添加以下命令:

EXEC msdb.dbo.sp_start_job 'other_job_name' 

【讨论】:

  • 如果我将此添加为我工作中的某个步骤,那么将按顺序运行。我希望第二份工作和第一份工作并行运行
  • 解释:Job1前2步生成数据,后2步复制数据。 job2 将数据复制到另外 2 台服务器。我希望job2在job1生成数据后运行。现在,如果我将在数据生成的前 2 个步骤之后在作业 1 中添加新步骤,那么作业 2 将开始运行,并且作业 1 数据复制将仅在作业 2 完成运行后开始。我希望复制是并行的
  • 没有塔努。如果您添加此命令,它将启动另一个作业,并且一旦启动,代码将继续执行作业 1。此命令不会等待作业完成继续前进。
  • 你确定吗?
  • 在我的测试中,我在存储过程中添加了 sp_start_job。如果适合您,则 proc 在作业开始后继续执行。
【解决方案2】:
exec msdb.dbo.sp_start_job @job_name = 'job_name';

【讨论】:

  • 虽然这段代码 sn-p 可以解决问题,但它没有解释为什么或如何回答这个问题。请include an explanation for your code,因为这确实有助于提高您的帖子质量。
猜你喜欢
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-10
相关资源
最近更新 更多