等待SSIS中的某个时间戳

时间:2013-03-16 13:04:53

标签: ssis sleep

我有一个MAIN SSIS包,内部调用2个子包。

这个MAIN pkg一起激活2个包(使用执行流程任务“dtexec / DTS”),并且有一个业务规则来查看某个时间戳的表列,并等到该时间戳是今天的日期(此时间戳已更新)由第三方)。

我目前正在使用foreach循环检查此时间戳,但是我在每次重试之间使用T-SQL语句睡眠10分钟,即:

WAITFOR DELAY '00:10:00'

我的问题是,这会等待整个MAIN SSIS pkg还是只有这个孩子pkg?

另外,如果有更好的方法来实现这个功能,那么两个孩子pkgs可以并行运行而不会相互挂起?

2 个答案:

答案 0 :(得分:1)

它会挂起整个主要的SSIS包吗?如果您的主程序包在此步骤中有先例,那么整个程序包将等待。您可能希望考虑从SQL代理作业调用主程序包,并重复10分钟。

但触发的想法更好。

答案 1 :(得分:0)

一些想法: 关于包装设计: 将两个子包放在父包的控制表面上的序列容器中。不要将它们“连接”在一起,以便它们并行运行。在序列容器外部放置一个执行sql任务。此任务将检查第三方更新的时间戳。使用条件来决定是否执行序列容器。

您打算如何安排父包? 创建一个sql作业来运行该包。 如果日期正确,我们可以在表上创建一个可以调用作业的触发器。相关链接:http://www.tek-tips.com/viewthread.cfm?qid=270744

这是一个有趣的问题。请发布您的发现和解决方案说明。祝你好运!