我有兩臺服務器,第一臺使用SQL Server 2005,第二臺使用SQL Server 2000.我想將數據從2005插入到2000,我希望做到不同步(沒有分佈式事務,因爲使用「保存事務」)。在SQL Server 2000上插入數據的SQL Server Service Broker
將信息插入到2000服務器的表中之後,會觸發一些替代觸發器來處理此信息。
在這種情況下,我決定使用Service Broker。所以我有一個存儲過程將信息從一臺服務器插入到另一臺服務器,並且完美地工作。
但是,當我從目標隊列過程消息過程調用此過程失敗,我不知道爲什麼!我知道它的工作原理是因爲當我使用相同的結構(隊列&存儲過程)在一臺SQL 2005服務器上將一個數據庫複製到另一個數據庫時。
因此,它只能在機器之間失敗,任何人都知道爲什麼或者如何獲得有關失敗原因的更多信息?或者如何插入數據異步(我不能使用SQL代理,因爲我想更頻繁地插入信息超過1分鐘)。
@Remus:我不使用顯式事務(分發或不分發),甚至不使用WAITFOR(接收)。我只是使用插入到鏈接的服務器,但也許有一個隱式的分佈式事務。我會嘗試!! – Alex 2009-11-30 19:59:31
插入到鏈接服務器是一個分佈式事務。由於WAITFOR在內部創建保存點,因此與分佈式事務處理器不兼容,因此插入到鏈接的服務器上。 – 2009-11-30 20:08:00