上回同步sql數據,發現訂閱服務器上的數據庫結構與發佈服務器上的結構不一樣,比如主鍵沒啦 ,identity的變成int啦,達到不了實現異地備分的目的,於是研究了一下,主鍵什麼的都可以同步過去啦,不知道方法做的對不對,先記錄下來,省着以後忘啦00!
在發佈數據庫的同時 在創建發佈嚮導時選中發佈的表,然後點右邊的...按鈕-快照保持現有表不變
然後手動導出發佈表的sql腳本,在訂閱庫中建立該表,在生成腳本時不要使用drop
在選擇 立即生成代理快照那項,就o啦
然後修改訂閱庫表的identity類型 是改爲是(不用於複製) 以後當這個爲主庫的時候再改成是。否則會出錯!
系統提示:
因爲該發佈不允許使用可更新的訂閱,當 IDENTITY 列被傳輸到訂閱服務器時,不會傳輸 IDENTITY 屬性。(例如,在發佈服務器上定義爲 INT IDENTITY 的列在訂閱服務器上將定義爲 INT。)
如果想將 IDENTITY 屬性傳輸到訂閱表,則必須進行如下操作:
» 使用 IDENTITY 屬性和 NOT FOR REPLICATION 選項手工創建訂閱表。您可以通過讓 SQL Server 在應用快照之前執行自定義腳本來執行該操作。若要指定自定義腳本,請先創建發佈,再創建腳本,然後在發佈屬性的“快照”選項卡上輸入該腳本的名稱。
» 設置名稱衝突項目屬性,以便 SQL Server 在訂閱服務器上應用快照時不會除去現有的表。該屬性在項目屬性的“快照”選項卡上。