2つのリンクサーバーがあり、最初のサーバーの1つのテーブルのデータをSELECT
sだけ、2番目のサーバーの別のテーブルのデータをINSERT
するストアドプロシージャを作成します。
プロシージャコードは次のようになります。
BEGIN TRAN
INSERT INTO [RI].[TEST_DB].[TEST_TABLE] (...)
SELECT ...
FROM [TABLE]
TRUNCATE [TABLE]
COMMIT TRAN
しかし、私は次のエラーを受け取ります:
リンクサーバー "RI"のOLE DBプロバイダー "SQLNCLI11"は、メッセージ "このセッションではこれ以上トランザクションを開始できません。"を返しました。
メッセージ7395、レベル16、状態2、手順usp_test、行46
リンクサーバー「RI」のOLE DBプロバイダー「SQLNCLI11」のネストされたトランザクションを開始できません。
XACT_ABORTオプションがOFFに設定されていたため、ネストされたトランザクションが必要でした。