Foreach循环Microsoft SSIS - 相当于break语句

时间:2009-01-13 10:31:47

标签: sql-server foreach ssis break

在SSIS的Foreach循环中有一种方法,如果任务失败,你可以突破循环到下一次迭代吗?

我循环遍历xml文件并使用此文件中的值执行查找,如果查找未返回任何我想报告的值,则不执行此文件的任何其他任务。如果没有相当于break语句的话还能实现这个目标吗?

4 个答案:

答案 0 :(得分:4)

您还可以使用带有布尔条件的'for'循环,例如循环,而变量等于true。然后,当你想要摆脱那个循环时,只需将该变量的值更改为false,然后就会突破循环。

回答你的问题......一个foreach循环,循环遍历集合和其他可枚举的构造,只要它们存在就可以循环。所以你可以找到一个解决方法,或者只使用'for'循环而不是'foreach'循环。这样你就可以通过设置条件表达式来控制循环。

答案 1 :(得分:0)

如果没有返回值,则查找可以重定向,远离成功的流程。

你需要你的foreach循环的其余部分才能知道出现了错误,所以有一种方法是在你做日志记录之前设置错误的包变量。

然后,在查找后的“成功”箭头中,您可以将其更改为条件成功,这样只有在变量的值不是错误值时才会继续。

答案 2 :(得分:0)

所以我只是遇到了这个问题,并通过以下方法解决了这个问题:a)将失败的任务指向一个没有做任何事情并结束的虚拟任务,并且b)将'FORCEEXECUTIONRESULTS'设置为'SUCCESS',它按照我想要的方式进行至。

答案 3 :(得分:0)

另一种方法是将一个序列容器放入循环中,然后将条件步骤放入序列容器中。任何应该“继续”的决定只需要退出序列容器。 使用您可能想要的所有控件实现非常简单,包括错误捕获。