次の方法で共有


Integration Services のトランザクション

パッケージではトランザクションを使用して、タスクがアトミック単位で実行するデータベース処理をバインドし、この処理によってデータの整合性を保ちます。 すべての種類の Microsoft Integration Services コンテナー (パッケージ、For ループ コンテナー、Foreach ループ コンテナー、シーケンス コンテナー、タスクをカプセル化するタスク ホスト) でトランザクションを使用するように設定できます。 Integration Services には、トランザクションを設定するオプションとして、 NotSupportedSupported、および Requiredの 3 つが用意されています。

  • Required は、親コンテナーで既に開始されているトランザクションがない限り、コンテナーでトランザクションを開始するように指定します。 開始されているトランザクションが存在する場合は、トランザクションが結合されます。 たとえば、トランザクションをサポートするように設定されていないパッケージに Required オプションが設定されたシーケンス コンテナーが含まれている場合、シーケンス コンテナーは固有のトランザクションを開始します。 パッケージが Required オプションを使用するように設定されている場合、シーケンス コンテナーはパッケージのトランザクションを結合します。

  • Supported は、コンテナーがトランザクションを開始せず、親コンテナーが開始したトランザクションを結合するように指定します。 たとえば、4 つの SQL 実行タスクがあるパッケージでトランザクションが開始され、4 つのタスクすべてに Supported オプションが設定されている場合、いずれかのタスクが失敗すると、SQL 実行タスクで実行されたデータベース更新すべてがロールバックされます。 パッケージでトランザクションが開始されない場合、4 つの SQL 実行タスクはトランザクションによってバインドされないため、失敗したタスクで実行されたデータベース更新以外はロールバックされません。

  • NotSupported は、コンテナーがトランザクションを開始せず、既存のトランザクションも結合しないように指定します。 親コンテナーで開始されたトランザクションは、トランザクションをサポートしないように設定された子コンテナーに影響を与えません。 たとえば、トランザクションを開始するように設定されたパッケージに NotSupported オプションが設定された For ループ コンテナーが含まれていた場合、For ループのタスクが失敗してもロールバックは行われません。

トランザクションの設定は、コンテナーの TransactionOption プロパティで設定します。 このプロパティは、 の [ プロパティ SQL Server Data Tools (SSDT)] ウィンドウを使用して、またはプログラムによって設定できます。

注意

TransactionOption プロパティは、コンテナーによって要求された IsolationLevel プロパティの値が適用されるかどうかに影響します。 詳細については、「パッケージプロパティのIsolationLevel設定」のプロパティの説明を参照してください。

パッケージでトランザクションを使用するように設定するには

外部リソース

参照

トランザクションの継承
複数のトランザクション