復寫架構變更

本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL 複寫 SQL Server 2014 中的架構變更。

如果您對已發佈的文章進行下列架構的更動,則預設會將這些更動傳播至 SQL Server 訂閱者,Microsoft:

  • ALTER TABLE

  • ALTER VIEW

  • ALTER PROCEDURE

  • ALTER FUNCTION

  • ALTER TRIGGER

本主題內容

開始之前

限制與制約

  • 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_ddl的 0 值。 如需詳細資訊,請參閱建立出版物。

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

  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 的值。

另請參閱

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