这是我的方案 - 我有一个SSIS工作,依赖于另一个先前的SSIS工作来运行。在开始第二个工作之前,我需要能够检查第一个工作的状态。将第二个作业添加到第一个作业的工作流程中是不可行的,因为它已经太复杂了。我希望能够从第二个作业中检查第一个作业的状态(失败,成功,当前正在执行),并将其用作判断第二个作业是否应该运行的条件,或者等待重试。我知道这可以通过查询运行作业的SQL Server上的MSDB数据库来完成。我想知道有一种更简单的方法,比如可能使用WMI数据读取器任务?有人有这种经历吗?
答案 0 :(得分:4)
您可能想要创建运行packageA然后packageB的第三个包。第三个包只包含两个执行包任务。
http://msdn.microsoft.com/en-us/library/ms137609.aspx
@Craig 状态表是一个选项,但您必须继续监视它。
以下是关于您原始问题的SSIS事件的文章 http://www.databasejournal.com/features/mssql/article.php/3558006
答案 1 :(得分:0)
为什么不使用桌子?只需让第一个作业用它的状态更新表。第二个作业可以使用该表来检查状态。如果我正确地阅读这个问题,这应该可以解决问题。该表(应该)只有一行,所以它不会杀死性能,不会导致任何死锁(当然,现在我写它,它会发生):)
@Jason:是的,你可以监控它,或者你可以在收到结束状态时触发第二个工作。 :)