次の方法で共有


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

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

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

現象

以下のシナリオについて考えてみます。

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

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

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

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

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

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

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

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

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

Note

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

原因

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

回避策

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