如果失败,Foreach循环SSIS不会移动到下一次迭代

时间:2014-09-10 10:22:35

标签: ssis

我正在使用SSIS,在Foreach循环中我有一个“Analysis Services执行DDL任务”。它有两次迭代。如果它在第一次迭代时失败,则循环不会继续进行第二次迭代。有什么方法可以让它转移到下一次迭代吗?

2 个答案:

答案 0 :(得分:1)

以下是错误发生后continue循环的方法

enter image description here

答案 1 :(得分:0)

可能发生的事情是任务的失败导致循环容器的MaximumErrorCount阈值得到满足。这会导致循环的ExecutionResult设置为失败,从而停止进一步的循环迭代。 (More on how MaximumErrorCount works [在我的博客上]。)

如果您不希望任务的错误停止进一步的循环迭代,则选项包括:

  • 将循环的MaximumErrorCount提升到更高的值或将其设置为无穷大。
  • 将循环的ForceExecutionResult设置为成功,以覆盖MaximumErrorCountExecutionResult设置为失败 - 无论ExecutionResult设置为什么,都会循环迭代。
    • 为了增加灵活性,我认为您可以使用表达式来控制ForceExecutionResult
  • 在停止事件传播的任务上添加OnError事件处理程序 - 防止错误从任务循环到循环容器。
  • 摆脱循环并创建多个Analysis Services执行DDL任务 - 完全绕过问题。

如果不了解你想要做的事情的大局,就很难就哪种方法最好做出推荐。