--- title: "Replicate Schema Changes | Microsoft Docs" ms.custom: "" ms.date: "03/17/2017" ms.prod: sql ms.prod_service: "database-engine" ms.reviewer: "" ms.technology: replication ms.topic: conceptual helpviewer_keywords: - "replication [SQL Server], schema changes" - "schemas [SQL Server replication], replicating changes" ms.assetid: c09007f0-9374-4f60-956b-8a87670cd043 author: "MashaMSFT" ms.author: "mathoma" monikerRange: "=azuresqldb-mi-current||>=sql-server-2016||=sqlallproducts-allversions" --- # Replicate Schema Changes [!INCLUDE[appliesto-ss-asdbmi-xxxx-xxx-md](../../../includes/appliesto-ss-asdbmi-xxxx-xxx-md.md)] This topic describes how to replicate schema changes in [!INCLUDE[ssCurrent](../../../includes/sscurrent-md.md)] by using [!INCLUDE[ssManStudioFull](../../../includes/ssmanstudiofull-md.md)] or [!INCLUDE[tsql](../../../includes/tsql-md.md)]. If you make the following schema changes to a published article, they are propagated, by default, to [!INCLUDE[msCoName](../../../includes/msconame-md.md)] [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] Subscribers: - ALTER TABLE - ALTER VIEW - ALTER PROCEDURE - ALTER FUNCTION - ALTER TRIGGER **In This Topic** - **Before you begin:** [Limitations and Restrictions](#Restrictions) - **To replicate schema changes, using:** [SQL Server Management Studio](#SSMSProcedure) [Transact-SQL](#TsqlProcedure) ## Before You Begin ### Limitations and Restrictions - The ALTER TABLE ... DROP COLUMN statement is always replicated to all Subscribers whose subscription contains the columns being dropped, even if you disable the replication of schema changes. ## Using SQL Server Management Studio If you do not want to replicate schema changes for a publication, disable the replication of schema changes in the **Publication Properties - \** dialog box. For more information about accessing this dialog box, see [View and Modify Publication Properties](../../../relational-databases/replication/publish/view-and-modify-publication-properties.md). #### To disable replication of schema changes 1. On the **Subscription Options** page of the **Publication Properties - \** dialog box, set the value of the **Replicate schema changes** property to **False**. 2. [!INCLUDE[clickOK](../../../includes/clickok-md.md)] To propagate only specific schema changes, set the property to **True** before a schema change, and then set it to **False** after the change is made. Conversely, to propagate most schema changes, but not a given change, set the property to **False** before the schema change, and then set it to **True** after the change is made. ## Using Transact-SQL You can use replication stored procedures to specify whether these schema changes are replicated. The stored procedure that you use depends on the type of publication. #### To create a snapshot or transactional publication that does not replicate schema changes 1. At the Publisher on the publication database, execute [sp_addpublication (Transact-SQL)](../../../relational-databases/system-stored-procedures/sp-addpublication-transact-sql.md), specifying a value of `0` for `@replicate_ddl`. For more information, see [Create a Publication](../../../relational-databases/replication/publish/create-a-publication.md). #### To create a merge publication that does not replicate schema changes 1. At the Publisher on the publication database, execute [sp_addmergepublication (Transact-SQL)](../../../relational-databases/system-stored-procedures/sp-addmergepublication-transact-sql.md), specifying a value of `0` for `@replicate_ddl`. For more information, see [Create a Publication](../../../relational-databases/replication/publish/create-a-publication.md). #### To temporarily disable replicating schema changes for a snapshot or transactional publication 1. For a publication with replication of schema changes, execute [sp_changepublication (Transact-SQL)](../../../relational-databases/system-stored-procedures/sp-changepublication-transact-sql.md), specifying a value of `replicate_ddl` for `@property` and a value of `0` for `@value`. 2. Execute the DDL command on the published object. 3. (Optional) Re-enable replicating schema changes by executing [sp_changepublication (Transact-SQL)](../../../relational-databases/system-stored-procedures/sp-changepublication-transact-sql.md), specifying a value of `replicate_ddl` for `@property` and a value of `1` for `@value`. #### To temporarily disable replicating schema changes for a merge publication 1. For a publication with replication of schema changes, execute [sp_changemergepublication (Transact-SQL)](../../../relational-databases/system-stored-procedures/sp-changemergepublication-transact-sql.md), specifying a value of `replicate_ddl` for `@property` and a value of `0` for `@value`. 2. Execute the DDL command on the published object. 3. (Optional) Re-enable replicating schema changes by executing [sp_changemergepublication (Transact-SQL)](../../../relational-databases/system-stored-procedures/sp-changemergepublication-transact-sql.md), specifying a value of `replicate_ddl` for `@property` and a value of `1` for `@value`. ## See Also [Make Schema Changes on Publication Databases](../../../relational-databases/replication/publish/make-schema-changes-on-publication-databases.md) [Make Schema Changes on Publication Databases](../../../relational-databases/replication/publish/make-schema-changes-on-publication-databases.md)