本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL 複寫 SQL Server 2014 中的架構變更。
如果您對已發佈的文章進行下列架構的更動,則預設會將這些更動傳播至 SQL Server 訂閱者,Microsoft:
ALTER TABLE(修改資料表)
ALTER VIEW (修改檢視)
ALTER PROCEDURE
改變函數
無改進必要,可以考慮保持原樣。
本主題內容
開始之前:
若要複製架構變更,請使用:
開始之前
限制與制約
- ALTER TABLE ...DROP COLUMN 語句一律會複寫到訂閱包含卸除數據行的所有訂閱者,即使您停用架構變更的復寫也一樣。
使用 SQL Server Management Studio
如果您不想復寫發行集的架構變更,請在 [ 發行集屬性 - <發行集> ] 對話框中停用架構變更的複寫。 如需有關存取這個對話方塊的詳細資訊,請參閱< View and Modify Publication Properties>。
停用架構變更的複寫
在 [發行集屬性 - <發行集>] 對話方塊的 [訂閱選項] 頁面上,將 [複寫架構變更] 屬性的值設定為 False。
按一下 [確定]。
若要只傳播特定的架構變更,請在架構變更之前,將 屬性設定為 True ,然後在進行變更之後將其設定為 False 。 相反地,若要傳播大部分的架構變更,但不是指定的變更,請在架構變更之前將 屬性設定為 False ,然後在進行變更之後將其設定為 True 。
使用 Transact-SQL
您可以使用複寫預存程式來指定是否複寫這些架構變更。 您使用的預存程式取決於發行集的類型。
建立不會復寫架構變更的快照式或交易式發行集
- 在發行集資料庫的發行者上,執行 sp_addpublication (Transact-SQL),指定 @replicate_ddl的 0 值。 如需詳細資訊,請參閱建立出版物。
建立不會復寫架構變更的合併式發行集
- 在發行者的發行資料庫上,執行 sp_addmergepublication (Transact-SQL),將 @replicate_ddl 設定為 0。 如需詳細資訊,請參閱建立出版物。
暫時停用快照或交易發行項目的架構變更複寫功能
對於具有復寫架構變更的發行集,請執行 sp_changepublication (Transact-SQL),針對 @property 指定 replicate_ddl 值,並針對 @value 指定 0 的值。
在已發佈的物件上執行 DDL 命令。
(選擇性)藉由執行 sp_changepublication (Transact-SQL)來重新啟用複寫架構變更,並針對 @property 指定 replicate_ddl 值,並針對 @value 指定 1 的值。
暫時停用合併式發行集的複寫架構變更
針對具有架構變更復寫的發行集,請執行 sp_changemergepublication (Transact-SQL),針對 @property 指定 replicate_ddl 值,併為 @value 指定0的值。
在已發佈的物件上執行 DDL 命令。
(選擇性)藉由執行 sp_changemergepublication (Transact-SQL)來重新啟用複寫架構變更,並針對 @property 指定 replicate_ddl的值,並針對 @value 指定 1 的值。