リンク サーバー上のプロシージャを呼び出すには、SQL Server 2005 プロシージャを変更する必要があります。私のローカル プロシージャは、常にトランザクション内で、他のいくつかのプロシージャによって呼び出されます。
リンク サーバーへの呼び出しを追加すると、実行時に、OLE DB プロバイダーが分散トランザクションを開始できなかったことを示すメッセージが表示されます。
私の知る限り、リモート プロシージャはデータベースの変更を行いません。トランザクション内にある必要はないため、分散トランザクションは必要ありません。
しかし、リンク サーバーへのトランザクションの拡張をオフにする方法がないと、私にはそのオプションがないと思われます。これは正しいです?
(これらのプロシージャをリファクタリングして、リンク サーバーへの呼び出しがすべてのトランザクションの外側の親プロシージャで行われるようにすることで、問題を回避できます。ただし、論理的には、この子プロシージャ内に属しているため、そこに保持したいと思います。)
皆さんありがとう。