次の方法で共有


SSIS チェックポイントは、For ループまたは Foreach ループ コンテナー項目には適用されません

この記事は、SQL Server Integration Services (SSIS) チェックポイントがまたはコンテナー項目に対して受け入れられない問題をFor LoopForeach Loop回避するのに役立ちます。

元の製品バージョン: SQL Server
元の KB 番号: 2624458

現象

次のような状況で問題が発生します。

  • コンピューターに Microsoft SQL Server Integration Services をインストールします。

  • シーケンス コンテナーが続く For ループ コンテナー項目を含む SSIS パッケージを作成します。

  • For ループ コンテナーとシーケンス コンテナー項目の両方に、次のいずれかが含まれます。

    • SQL 実行タスク (OR)
    • 並列で実行される 2 つ以上の SQL 実行タスク。
  • SSIS パッケージのチェックポイント設定を有効にします。

  • SSIS パッケージを実行する

  • For ループ コンテナーが完了し、パッケージの実行がシーケンス コンテナーに移動します。

  • 次のいずれかのアクションを実行します。

    • 1 つの SQL 実行タスクを持つパッケージの場合は、タスクの実行中にパッケージの実行を停止します。
    • 複数の SQL 実行タスクを実行しているパッケージの場合は、パッケージの実行を停止するか、他の SQL 実行タスクがまだ実行されている間に、それらのタスクのいずれかでエラーが発生します
  • SSIS パッケージが再び実行されます。

このシナリオでは、コンテナーではなくコンテナーから For Loop パッケージが Sequence 開始されます。

注:

この問題は、SQL タスクの実行に関連していません。 これは、他のタスクでも発生する可能性があります。

原因

この動作は仕様です。 チェックポイント データは、コンテナー項目とForeach Loopコンテナー項目に対してFor Loop保存されません。 ループ内の子コンテナーが正常に実行された場合、チェックポイント ファイルには記録されません。 そのため、パッケージが再起動されると、これらの各コンテナー項目のタスクが再度実行されます。

回避策

この問題を回避するには、コンテナー内の For Loop または コンテナーをForeach LoopSequenceラップします。