sqlserver同步2 如何讓訂閱服務器與發佈服務器庫結構一樣

上回同步sql數據,發現訂閱服務器上的數據庫結構與發佈服務器上的結構不一樣,比如主鍵沒啦 ,identity的變成int啦,達到不了實現異地備分的目的,於是研究了一下,主鍵什麼的都可以同步過去啦,不知道方法做的對不對,先記錄下來,省着以後忘啦00!

 

在發佈數據庫的同時 在創建發佈嚮導時選中發佈的表,然後點右邊的...按鈕-快照保持現有表不變


然後手動導出發佈表的sql腳本,在訂閱庫中建立該表,在生成腳本時不要使用drop

 

在選擇 立即生成代理快照那項,就o啦

 

然後修改訂閱庫表的identity類型 是改爲是(不用於複製) 以後當這個爲主庫的時候再改成是。否則會出錯!

 

系統提示:

因爲該發佈不允許使用可更新的訂閱,當 IDENTITY 列被傳輸到訂閱服務器時,不會傳輸 IDENTITY 屬性。(例如,在發佈服務器上定義爲 INT IDENTITY 的列在訂閱服務器上將定義爲 INT。)

如果想將 IDENTITY 屬性傳輸到訂閱表,則必須進行如下操作:

     » 使用 IDENTITY 屬性和 NOT FOR REPLICATION 選項手工創建訂閱表。您可以通過讓 SQL Server 在應用快照之前執行自定義腳本來執行該操作。若要指定自定義腳本,請先創建發佈,再創建腳本,然後在發佈屬性的“快照”選項卡上輸入該腳本的名稱。

     » 設置名稱衝突項目屬性,以便 SQL Server 在訂閱服務器上應用快照時不會除去現有的表。該屬性在項目屬性的“快照”選項卡上。

發佈了49 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章