3

ローカル テーブルで更新を行い、リンク サーバーへのリモート プロシージャ コールから取得した値を別のローカル テーブルに挿入する .net コードから呼び出される sproc があります。

リンク サーバーから結果を挿入しようとするたびに、このエラー メッセージが表示されます。insert into ステートメントを取り出しても、リモート プロシージャ コールはそのままにしておくと、問題なく動作します。エラーは次のとおりです。

System.Data.SqlClient.SqlException: リンク サーバー "MyLinkedServer" の OLE DB プロバイダー "SQLNCLI10" が分散トランザクションを開始できなかったため、操作を実行できませんでした。リンク サーバー "MyLinkedServer" の OLE DB プロバイダー "SQLNCLI10" から、"トランザクション マネージャーがリモート/ネットワーク トランザクションのサポートを無効にしました。" というメッセージが返されました。

これは私が使用している簡単なコードです:

INSERT INTO MyLocalTable
EXEC [MyLinkedServer].[MyRemoteDatabase].[dbo].[usp_MySproc] @MyParam

ここで何が問題なのか、またはリモートプロシージャからローカルテーブルに結果を挿入する方法についての提案はありますか?

4

1 に答える 1

2

SQL担当者の1人は、「分散トランザクションのプロモーションを有効にする」をfalseに変更することでこれを解決できました。

于 2012-10-23T16:39:20.477 に答える