コピーが失敗した場合は、DB「ソース」からデータベース「宛先」にデータをコピーする必要があります。「宛先」でロールバックする必要があります。2 つの接続は、接続マネージャーで OLE DB として定義されます。
これが機能していない私の現在の試みです。組み込みのトランザクション管理 (タスク トランザクションをrequiredに設定) をいじってみましたが、「宛先」に接続できなくなっただけでした。
宛先では "RetainSameConnection" = true が設定されていますが、これは特に理由もなく "source" では false です。
また、「MaxConcurrentExecutables」= 1 を設定して、SSIS が最初にロールバックを実行するのを妨げます。
シーケンス内の各タスクは、「Isolation level」=ReadUncommitted および「transactionOption」=supported に設定されています。
「失敗するスクリプト」は、トランザクションが機能していることをテストするために常に失敗するスクリプトです。
タスク「begin tran」のコードは「BEGIN TRANSACTION」で、接続は「destination」に設定されています
タスク「rollback tran」のコードは「rollback transaction」で、接続は「destination」に設定されています
ロールバックは、「ロールバック トランザクション リクエストに対応する 'BEGIN TRANSACTION' がありません」で失敗します。