HI
我正在创建一个需要按指定顺序执行的ssis包:
1:处理一些数据 2:将该数据移动到其他一些表 3:获取一些数据并将其推送到纯文本文件中。
我为这些创建了3个存储过程,我为1和2创建了2个“执行SQL任务”,为第3个创建了“数据流任务”。
现在,当我运行软件包时,我可以看到所有3个步骤都已完成(没有错误),但它们的运行顺序不正确。
我看到第3步先运行,然后是第1步和第2步,我认为第3步再次运行。通常我可以忽略它,但由于文本文件中的数据可能是700 MB,我需要找到一种方法让SSIS按顺序运行这些任务。
我尝试过“序列容器”,但没有运气。
有人可以帮我这个吗?
KA
答案 0 :(得分:5)
您需要使用precedence constraints 告诉SSIS您的任务需要执行的顺序。
将绿色箭头从任务1拖到任务2,从任务2拖到任务3。
答案 1 :(得分:3)
你可以连接
第一个SQL执行任务
成功的优先约束
第二个SQL执行任务
成功的优先约束
数据流
SSIS将遵循我们要求的顺序。
感谢
prav
答案 2 :(得分:2)
我确实遇到了这个问题。任务正在按照我创建它们的顺序执行,而不是我后面指定的顺序。事实证明,我设法得到一个属于第一个序列容器的任务,它出现在最后一个序列容器中而不会失去它对第一个序列容器的忠诚。我通过备份和删除序列容器发现了这一点 - 当我删除第一个序列容器时,流氓任务就消失了。
解决方法是将任务切换到所需的序列容器中。
答案 3 :(得分:2)
我遇到了SQL Server Denali的一个问题,即使各个组件的顺序运行不正常,即使它们是由成功约束连接起来的。当我剪切并粘贴组件和约束时,似乎会出现问题。通过删除并重新应用约束,包然后以正确的顺序运行。
答案 4 :(得分:2)
在我的情况下,如果我想决定序列容器中的执行顺序,我将在执行sql任务和数据流任务之间使用[子序列容器]。希望对你有用。
答案 5 :(得分:-1)
最好的方法是使用Sequence Containers ...基本上它们有助于创建序列。
但是因为它在您的情况下不起作用,所以为您的所有不同过程创建子包 然后创建一个主包,它将包含指向这些子包的链接,USE“执行包任务”