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

Sql server Foreach循环Microsoft SSIS-相当于break语句,sql-server,foreach,ssis,break,Sql Server,Foreach,Ssis,Break,在SSIS中的Foreach循环中,是否有一种方法可以在任务失败时跳出循环进入下一个迭代 我在xml文件上循环,并使用此文件中的值执行查找,如果查找没有返回任何我想报告的值,则不执行此文件的任何其他任务。如果没有与break语句等价的语句,那么如何才能实现这一点?如果没有返回值,则查找可以重定向,使其远离成功的流 您需要foreach循环的其余部分知道发生了错误,因此一种方法是在日志记录之前,在error上设置一个包变量 然后,在查找后的“成功”箭头中,您可以将其更改为条件成功,以便仅当变量的值

在SSIS中的Foreach循环中,是否有一种方法可以在任务失败时跳出循环进入下一个迭代


我在xml文件上循环,并使用此文件中的值执行查找,如果查找没有返回任何我想报告的值,则不执行此文件的任何其他任务。如果没有与break语句等价的语句,那么如何才能实现这一点?

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

您需要foreach循环的其余部分知道发生了错误,因此一种方法是在日志记录之前,在error上设置一个包变量


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

您还可以使用带有布尔条件的“for”循环,例如在变量等于true时循环。然后,当您想要跳出该循环时,只需将该变量的值更改为false,然后就可以跳出该循环


回答您的问题…foreach循环,循环集合和其他可枚举结构,只要它们存在就可以循环。因此,您可以找到解决方法,或者只使用“for”循环而不是“foreach”循环。这样,由于设置了条件表达式,您对循环有更多的编程类型控制。

因此,我遇到了这个问题,并通过以下方法解决了它:a)将失败的任务定向到一个没有执行任何操作并结束的虚拟任务;b)将“FORCEEXECUTIONRESULTS”设置为“SUCCESS”,这正是我想要的方式

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