我想從我的本地mssql 2005服務器將數據插入觸發器到遠程mssql 2005服務器。插入到遠程服務器MSSQL 2005
我有一張表Syr;我創建了一個觸發器(AFTER INSERT)來檢測是否添加了一些東西。 我想將該數據複製到另一個遠程服務器的同一個表。 我的問題是,如果我只是在普通查詢中執行插入語句(這非常簡單,只是爲了測試而使用靜態數據),它會成功;我甚至可以從遠程服務器中選擇。 但是當我把這個簡單的插入到扳機區塊:「無法啓動分佈式事務」
CREATE TRIGGER T_SyrInserted
ON [DBProba].[dbo].[Syr]
AFTER INSERT
AS BEGIN
INSERT INTO [RemoteSrv].[DBProba].[dbo].[Syr] (SyrId, SyrNm) VALUES (15000734, 'valami')
END
解決:
- 設置DTC認證爲無
- 我碰到一個錯誤「因爲XACT_ABORT爲OFF,所以無法執行嵌套事務」,因此在插入語句之前添加了一行:SET XACT_ABORT ON;我不知道什麼是「嵌套」我曾與一個簡單的插入而精做...
DTC兩端開啓?... –
嘗試在「正常查詢」中執行exec'BEGIN DISTRIBUTED TRANSACTION'。在觸發器上下文中執行的查詢會自動包裝在事務中。如果觸發代碼中有任何分佈式查詢,則該事務將自動提升爲分佈式事務。 –
分佈式事務控制正在兩臺服務器上運行。防火牆已關閉。允許DTC訪問,允許入站,允許。 – Zui