次の方法で共有


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 データ ツール (SSDT) の [プロパティ] ウィンドウを使用して、またはプログラムによって設定できます。

注意

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

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

外部リソース

Integration Services のアイコン (小) 最新の Integration Services の入手

マイクロソフトが提供する最新のダウンロード、アーティクル、サンプル、ビデオ、およびコミュニティで選択されたソリューションについては、MSDN の Integration Services のページを参照してください。


これらの更新が自動で通知されるようにするには、ページの RSS フィードを定期受信します。

関連項目

概念

トランザクションの継承

複数のトランザクション