2010-12-05 6 views
3

動作しません。これは、結果セットを返す、作品テーブルに挿入します。..リンクサーバーの幹部は

insert into rowcount_sub (tablename,rowcnt) 
exec ('select ''col'', count(1) from test.dbo.[Table1] with (nolock)') at svrA 

はこれを与えて失敗しますエラー:

OLE DB provider "SQLNCLI10" for linked server "svrA" returned message "No transaction is active.". 
Msg 7391, Level 16, State 2, Line 1 
The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "svrA" was unable to begin a distributed transaction. 
+0

MSDTC(Microsft Distributed Transaction Coordinator)サービスでsthできますか? 012.mpctで起動することができます –

+0

このMSDTCはリモートサーバーまたはローカルサーバー上にありますか? – sharadov

答えて

2

The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "svrA" was unable to begin a distributed transaction.

メッセージはかなりのclです耳とかなり明白です。システム文書を開き、分散トランザクションの設定手順(Configuring MS DTC Services)に従います。

ブログやチュートリアルの多くはそこにもあります

5

は、私が代わりにEXECのOPENQUERYを使用して同じ問題を解決することができました:

insert into rowcount_sub (tablename,rowcnt) 
SELECT * FROM OPENQUERY(svrA, 'select ''col'', count(1) from test.dbo.[Table1] with (nolock)') 

誰かを助けることを願って...

5

分散トランザクションを目的に使用しない場合は、メインサーバー上のリンクサーバーオブジェクトの詳細プロパティを使用して、分散トランザクションのプロモーションを無効にすることができます。

Disable promotion of distributed transaction

0

真から偽の固定私の問題への「分散トランザクションの推進を有効にする」を変更します。

関連する問題