For 循环或 Foreach 循环容器项不支持 SSIS 检查点
本文可帮助你解决以下问题:SQL Server Integration Services (SSIS) 检查点不适用于For Loop
或Foreach Loop
容器项。
原始产品版本:SQL Server
原始 KB 编号: 2624458
症状
请考虑以下情况:
在计算机上安装 Microsoft SQL Server Integration Services。
创建一个 SSIS 包,其中包含后跟序列容器的 For 循环容器项。
For 循环容器和序列容器项都具有以下任一项:
- 执行 SQL 任务 (或)
- 并行运行的两个或多个执行 SQL 任务 () 。
为 SSIS 包启用检查点设置。
运行 SSIS 包
For 循环容器完成,包执行将归到序列容器。
执行以下操作之一:
- 对于具有单个执行 SQL 任务的包,可以在任务仍在运行时停止包执行。
- 对于运行多个执行 SQL 任务的包,要么停止包执行,要么在其中一个任务中遇到失败,而其他执行 SQL 任务 () 仍在运行
SSIS 包再次运行。
在此方案中,包从 For Loop
容器而不是 Sequence
容器开始。
注意
此问题与执行 SQL 任务无关。 其他任务也可能发生这种情况。
原因
此行为是设计使然。 不会为 For Loop
容器和 Foreach Loop
容器项保存检查点数据。 如果循环中的子容器成功运行,则不会将其记录在检查点文件中。 因此,当重新启动包时,将再次执行其中每个容器项中的任务。
解决方法
若要解决此问题,请将 或 容器包装For Loop
在容器内Sequence
。Foreach Loop
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈