Sql-Server

觸發器在連結伺服器上不起作用。兩台伺服器都是 SQL Server 2005

  • October 17, 2017

我已將伺服器與另一台伺服器連結。我可以從連結伺服器訪問記錄,也可以使用 INSERT 語句插入記錄,例如

INSERT INTO [LINKED-SERVER-IP].MyDb.dbo.Customer (CustomerId, CustomerName)
SELECT CustomerId, CustomerName FROM MyCustomers WHERE CustomerId = 5

上面的查詢工作正常並插入記錄,但是當我在觸發器中使用此查詢時,出現以下錯誤。

連結伺服器“Linked-Server-IP”的 OLE DB 提供程序“SQLNCLI”返回消息“合作夥伴事務管理器已禁用其對遠端/網路事務的支持。”。發生了一些錯誤。消息 3616,級別 16,狀態 1,第 1 行事務在觸發器中註定失敗。批次已中止。

謝謝。

觸發器中的程式碼在與插入/更新/刪除語句相同的隱式事務中執行。因此,它試圖在兩個伺服器之間共享事務,預設情況下是不允許的。

您是否有足夠的權限來更改設置?如果沒有,那麼您可以考慮其他選項,例如插入本地表並複制數據,或者使用 Service Broker 獲取另一個程序來執行遠端插入。

引用自:https://serverfault.com/questions/153928