2012-04-04 20 views
0

集成使用兩個數據庫在同一個SQL Server 2005這兩個應用程序在同一臺服務器上自己的數據庫中的兩個應用程序時,這個問題出現在執行觸發器和存儲過程,但我們必須從一個傳遞一些數據數據庫到另一個。我們使用觸發器和存儲過程來做到這一點。MS DTC爲同一服務器

如果我們使用SQL Server Management Studio將數據插入數據庫中,則不需要msdtc,但如果我們使用應用程序插入數據,則會出現錯誤,表示DTC未啓用。我們無法控制應用程序插入數據。

我的問題簡而言之就是爲什麼使用應用程序插入數據時需要msdtc?

注:觸發器不會使數據庫之間只調用存儲過程

+1

發佈您的代碼..... – 2012-04-04 23:24:19

+0

聽起來像SQL Server 2005上的自動升級問題:http://stackoverflow.com/questions/1690892/transactionscope-automatically-escalating-to-msdtc-on-some-機器 – 2012-04-04 23:25:59

+0

它可能是這個問題,我在發佈之前閱讀該帖子。我們正在運行此應用程序的客戶端環境中進行部署,並且它們沒有啓用msdtc。沒有啓用msdtc的工作方式嗎?可能是 – 2012-04-04 23:55:43

回答

0

有其中一個可間接利用MSDTC不少情況:羣集服務器,配置的複製,COM +的大多數應用,等等上。

但是,正如@MitchWheat在評論中指出的那樣,SQL Server 2005(以及Oracle資源管理器)在單個事務範圍內有多個數據庫連接時特別使用MSDTC。 SQL Server 2008中已修復此行爲(如果您認爲這很不方便)。

在你的情況,這是一個客戶端,而不是服務器端的問題,但它通常可以是。