SSIS OnError 事件处理程序完成但不继续 For 循环容器内的任务

问题描述 投票:0回答:1

我有一个包,在执行时会更新大量表。 有时,由于旧版本表和新更新版本表之间的列号不匹配,包会失败,直到视图中的所有表都更新为止。

父包将选择视图中所需的所有表,然后运行 For 循环容器来遍历每个表并更新所述表。子包仅运行一系列更新表的本地版本的任务,然后使用新表重新运行自身。

我创建了一个 OnError 事件处理程序来处理将新更新的行应用于旧表时子包将失败的情况。事件处理程序纠正任务问题,然后再次为该特定表成功重新运行整个子包。但是,当它完成该特定表的任务时,包会立即结束,并且不会继续运行 for 循环并继续执行下一个表。

如何在包内解决此问题?我希望包在失败的情况下继续运行,但我不知道如何让包在 Even Handler 之后继续 for 循环。

打包流程示例;

T.Customers 运行成功
T.子包期间销售失败
OnError 处理程序启动
T.Sales现已成功运行
包现在以失败结束(完成 T.Sales 表,但仍然显示包失败)
T.Returns 尚未运行 OnError 事件完成上表后包结束。

ssis
1个回答
0
投票

您可以将任务属性 ForceExecutionResult 设置为 Success 且 MaximunErrorCount=0 您可以在这里找到解决方案: https://www.mssqltips.com/sqlservertip/3575/continue-a-foreach-loop-after-an-error-in-a-sql-server-integration-services-package/

© www.soinside.com 2019 - 2024. All rights reserved.