复制架构更改

本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中复制架构更改。

如果对已发布的文章进行以下架构更改,默认情况下,它们会传播到 Microsoft SQL Server 订阅者。

  • 修改表格

  • 修改视图

  • ALTER PROCEDURE

  • 修改函数

  • 修改触发器

本主题内容

在您开始之前

局限性与限制

  • ALTER TABLE...DROP COLUMN 语句始终复制到其订阅中包含要删除的列的所有订阅服务器,即使禁用架构更改的复制也是如此。

使用 SQL Server Management Studio

如果不想复制发布的架构更改,请在 “发布属性 - <发布> ”对话框中禁用架构更改的复制。 有关访问此对话框的详细信息,请参阅 “查看和修改发布属性”。

禁止架构变更的复制

  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),将replicate_ddl指定为@property的值,并将1指定为@value的值,来重新启用架构更改的复制功能。

另请参阅

对发布数据库进行架构更改
对发布数据库进行架构更改