2008-08-21 156 views
2

是否可以創建一個不在事務中的觸發器?觸發沒有交易?

我想用觸發器更新鏈接服務器上的數據,但由於防火牆問題,我們無法在兩臺服務器之間創建分佈式事務。

回答

2

您可能需要的是包含鏈接服務器更新的隊列和從隊列中讀取數據並更新遠程服務器的進程的組合。觸發器會將消息作爲正常事務的一部分插入到隊列中。該數據將由單獨的進程讀取並用於更新遠程服務器。邏輯將在進程中處理錯誤(並可能重試)。

該隊列可以用一個或多個表來實現。

2

我知道這沒什麼幫助,所以我可能會爲此付出代價,但實際上,解決方案是修復防火牆問題。

我認爲如果您使用遠程(未鏈接)服務器(這些日子不是首選選項),那麼您可以使用SET REMOTE_PROC_TRANSACTIONS OFF來防止DTC用於遠程事務,這可能是正確的事情。但是,無論如何,這可能無法幫助您使用鏈接服務器。