0

この問題は、同じSQL Server 2005で2つのデータベースを使用して2つのアプリケーションを統合する場合に発生します。両方のアプリケーションは同じサーバー上に独自のデータベースを持っていますが、あるデータベースから別のデータベースにデータを転送する必要があります。これを行うために、トリガーとストアドプロシージャを使用しています。

SQL Server Management Studioを使用してデータベースにデータを挿入する場合、msdtcは必要ありませんが、アプリケーションを使用してデータを挿入すると、DTCが有効になっていないというエラーが表示されます。データを挿入するアプリケーションを制御することはできません。

要するに私の質問は、アプリケーションを使用してデータを挿入するときにmsdtcが必要なのはなぜですか?

注:トリガーはデータベース間で呼び出しを行っておらず、ストアドプロシージャのみが呼び出しを行っています。

4

1 に答える 1

0

MSDTC を間接的に使用する可能性がある状況はかなり多くあります。たとえば、クラスタ化されたサーバー、構成されたレプリケーション、COM+ のほとんどの使用などです。

ただし、@MitchWheat がコメントで既に指摘しているように、SQL Server 2005 (および Oracle リソース マネージャー) は、1 つのトランザクション スコープに複数のデータベース接続がある場合は常に MSDTC を使用します。この動作は、SQL Server 2008 で修正されています (不便だと思われる場合)。

あなたの場合、これはクライアント側の問題であり、サーバー側の問題ではありませんが、一般的にはどちらでもかまいません。

于 2012-04-05T07:07:26.827 に答える