我想向您介紹我與SQL Server 2005的雙向複製問題。 我需要什麼? 我的teamleader想要解決我們在兩個數據庫之間使用雙向複製的問題,每個數據庫都由不同的應用程序使用。一個應用程序在表A中創建記錄,更改應該複製到第二個數據庫到表A的副本中。當第二個服務器上的數據發生更改時,那些更改必須傳播回第一個服務器。 我想要一臺服務器,這是運行SQL Server 2005我已經設法此設置使用腳本上實現兩個數據庫之間的雙向事務複製,建立2種出版物和2個只讀環回檢測訂閱。分發數據庫已創建,兩個數據庫上的發佈都已啓用。分銷商和發行商都已啓動。我們正在使用一些規則來控制哪些記錄將被複制,因此我們需要在複製期間調用我們的自定義存儲過程。因此,文章被設置爲使用更新,插入和刪除自定義存儲過程。雙向複製更新記錄
到目前爲止好,但?
一切工作正常,更改複製,直到更新這兩個表同時進行或更改被複制之前(這大約需要3-6秒)。這兩個記錄然後以不同的值結束。
UPDATE db1.dbo.TestTable SET Col = 4 WHERE ID = 1
UPDATE db2.dbo.TestTable SET Col = 5 WHERE ID = 1
結果:
db1.dbo.TestTable COL = 5
db2.dbo.TestTable COL = 4
但我們希望能有最後的改變獲勝複製。請問有沒有辦法解決我的問題?我如何確保兩個記錄中的值相同?還是有比這種複製更容易的解決方案?
我可以提供我使用的樣本複製腳本。
我期待着你的想法,
米雷克
日期時間但是,這將意味着,我必須做的更新包含此日期時間值列中的所有更新,是我對嗎? – Mirek 2009-10-08 10:24:10
@Mirek:如果你遵循kristof的建議,你將需要一個'INSTEAD OF'觸發器和'NOT FOR REPLICATION'子句。 – filiprem 2009-12-21 21:37:33