共用方式為


復寫架構變更

本主題描述如何使用 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>。

停用架構變更的複寫

  1. 在 [發行集屬性 - <發行集>] 對話方塊的 [訂閱選項] 頁面上,將 [複寫架構變更] 屬性的值設定為 False

  2. 按一下 [確定]

    若要只傳播特定的架構變更,請在架構變更之前,將 屬性設定為 True ,然後在進行變更之後將其設定為 False 。 相反地,若要傳播大部分的架構變更,但不是指定的變更,請在架構變更之前將 屬性設定為 False ,然後在進行變更之後將其設定為 True

使用 Transact-SQL

您可以使用複寫預存程式來指定是否複寫這些架構變更。 您使用的預存程式取決於發行集的類型。

建立不會復寫架構變更的快照式或交易式發行集

  1. 在發行集資料庫的發行者上,執行 sp_addpublication (Transact-SQL),指定 @replicate_ddl0 值。 如需詳細資訊,請參閱建立出版物

建立不會復寫架構變更的合併式發行集

  1. 在發行者的發行資料庫上,執行 sp_addmergepublication (Transact-SQL),將 @replicate_ddl 設定為 0。 如需詳細資訊,請參閱建立出版物

暫時停用快照或交易發行項目的架構變更複寫功能

  1. 對於具有復寫架構變更的發行集,請執行 sp_changepublication (Transact-SQL),針對 @property 指定 replicate_ddl 值,並針對 @value 指定 0 的值。

  2. 在已發佈的物件上執行 DDL 命令。

  3. (選擇性)藉由執行 sp_changepublication (Transact-SQL)來重新啟用複寫架構變更,並針對 @property 指定 replicate_ddl 值,並針對 @value 指定 1 的值。

暫時停用合併式發行集的複寫架構變更

  1. 針對具有架構變更復寫的發行集,請執行 sp_changemergepublication (Transact-SQL),針對 @property 指定 replicate_ddl 值,併為 @value 指定0的值。

  2. 在已發佈的物件上執行 DDL 命令。

  3. (選擇性)藉由執行 sp_changemergepublication (Transact-SQL)來重新啟用複寫架構變更,並針對 @property 指定 replicate_ddl的值,並針對 @value 指定 1 的值。

另請參閱

對發行的資料庫進行資料庫結構變更
對發行的資料庫進行資料庫結構變更