分散トランザクションを作成せずにリモートストアドプロシージャからローカルテーブルに挿入するにはどうすればよいですか?リモートサーバーでストアドプロシージャを実行し、その出力をローカルテーブルへの挿入のソースとして使用したいと考えています。
SQL Server 2008以降の場合、リンクサーバーのプロモーションを無効にできます。これは[詳細]プロパティタブにあります。または、次のようにスクリプトを作成できます。
EXEC master.dbo.sp_serveroption
@server=N'YourLinkedServer',
@optname=N'remote proc transaction promotion',
@optvalue=N'false'
SQL Server 2005の場合、OLE DBリンクサーバーを追加できます。これにより、接続文字列に詳細なオプションを入力できます。
このようなリンクサーバーを構成する方法を次に示します。 Server Objects
をクリックし、次にLinked Servers
を右クリックしてNew Linked Server...
を選択します。次のようにサーバーを構成します。
Data Source=<server or ip>,1433;Network Library=DBMSSOCN;Initial Catalog=<database name>;Enlist=false;
接続文字列のEnlist=false
は、分散トランザクションを防止する必要があります。