这是我的场景 - 我有一个 SSIS 作业,它依赖于另一个先前的 SSIS 作业来运行。在开始第二个工作之前,我需要能够检查第一个工作的状态。将第二个作业添加到第一个作业的工作流程中是不可行的,因为它已经太复杂了。我希望能够从第二个作业中检查第一个作业的状态(失败、成功、当前正在执行),并以此作为条件来决定第二个作业是否应该运行或等待重试。我知道这可以通过查询运行该作业的 SQL Server 上的 MSDB 数据库来完成。我想知道是否有更简单的方法,例如可能使用 WMI 数据读取器任务?有人有过这样的经历吗?

有帮助吗?

解决方案

您可能想要创建第三个包,先运行 packageA,然后运行 ​​packageB。第三个包仅包含两个执行包任务。

http://msdn.microsoft.com/en-us/library/ms137609.aspx

@craig是一个状态表,但您必须继续监视它。

这是一篇关于 SSIS 事件的文章,可以解答您的原始问题。
http://www.databasejournal.com/features/mssql/article.php/3558006

其他提示

为什么不使用桌子呢?只需让第一个作业用其状态更新表即可。第二个作业可以使用该表来检查状态。如果我正确地阅读了问题,那应该可以解决问题。该表(应该)只有一行,因此不会影响性能,也不应该导致任何死锁(当然,既然我写了它,它就会发生):)

@杰森:是的,您可以监视它,或者可以在收到最终状态时让触发器启动第二项作业。:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top