2009-06-12 53 views
2

有沒有辦法複製sql server數據庫,但不會將刪除推送給訂閱者?SQL Server複製沒有刪除?

+0

您是否嘗試過我的建議? – Eric 2009-06-12 16:45:05

+0

如果從表中刪除一行,然後用相同的密鑰重新插入,但其他一些數據字段不同,應該怎麼辦? – Joe 2009-06-12 17:16:58

回答

0

這樣做....刪除文章。在相應的數據庫中創建一個新的存儲過程,該過程模仿系統存儲過程(sp_del ...)幷包含相同的參數但不執行任何操作。再次添加文章...並將文章屬性下的刪除存儲過程設置爲您創建的新刪除存儲過程。

或者您可以選擇不復制刪除語句....我認爲工程,但我沒有嘗試過。

+0

警告!我已經使用過這樣的解決方案,當複製遇到麻煩並且需要重新初始化時,我們遇到了很大的麻煩。我會針對這個問題發佈一個單獨的答案,以代替我們使用的內容。 – 2012-04-25 05:41:10

1

人們很容易在正常的複製和「撤防」用戶的側刪除存儲過程的「干預」,但這個沒有留下選項可以複製故障中恢復。如果複製嘗試恢復,則可能需要重新初始化,這將刪除複製代理認爲已刪除的任何「陳舊」數據。

另一種方法是使用正常複製,並使用腳本在用戶數據庫中的所有表上生成插入和更新觸發器,將該數據插入/更新到第三個數據庫中。這樣,第三個數據庫將收集所有曾經存在的數據,第二個數據庫可以在需要時重新初始化它的訂閱(當你這樣做時,只要記住批量插入不會調用插入觸發器並檢查新數據,將它添加到第三個數據庫),並且第一個數據庫不必執行觸發器的額外工作。