2009-01-13 37 views
8

在SSIS中的Foreach循环中有一种方法,如果任务失败,您可以跳出循环到下一个迭代?Foreach循环Microsoft SSIS - 相当于break语句

我遍历XML文件,并使用此文件中的值,如果查找没有返回,我想对这个报告的任何值,然后不是这个文件执行任何其他任务执行查找。如果没有相当于突破性陈述的话,还能如何实现?

回答

4

你也可以使用一个布尔条件的“for”循环,如循环而变量等于为true。然后,当您想要跳出该循环时,只需将该变量的值更改为false,然后您将跳出循环。

回答你的问题... foreach循环,只要它们存在遍历遍历集合和其他枚举结构。所以你可以找到解决方法,或者只是使用'for'循环而不是'foreach'循环。这样你就可以对循环进行更多的编程类型控制,因为你设置了条件表达式。

0

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

你需要你的foreach循环知道出现了一个错误的休息,所以一个办法是设置一个包变量上的错误,你做的记录之前。

然后,在你的查找后,“成功”的箭头,你可以把它改成一个有条件的成功,使其仅当该变量的值不是错误值进行。

0

所以我刚刚遇到了这个问题,并通过以下方法解决了这个问题:a)将失败的任务转到一个虚拟任务,该任务什么也没做并且结束; b)将'FORCEEXECUTIONRESULTS'设置为'SUCCESS',它通过我想要的方式它来。

0

而另一种方法是把一个序列容器放入你的循环再放入序列容器中的条件的步骤。任何应该“继续”的决定只需要退出序列容器。 使用包括错误捕获在内的所有控件都可以非常简单地实现。