复制架构更改

本主题说明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中复制架构更改。

如果对发布的项目进行以下架构更改,则会默认将其传播到 Microsoft SQL Server 订阅服务器:

  • ALTER TABLE

  • ALTER VIEW

  • ALTER PROCEDURE

  • ALTER FUNCTION

  • ALTER TRIGGER

本主题内容

  • 开始之前:

    限制和局限

  • 复制架构更改,使用:

    SQL Server Management Studio

    Transact-SQL

开始之前

限制和局限

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

用于“返回首页”链接的箭头图标[Top]

使用 SQL Server Management Studio

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

禁用对架构更改的复制

  1. 在**“发布属性 - <发布>”对话框的“订阅选项”页上,将“复制架构更改”**属性的值设置为 False

  2. 单击“确定”。

    若要仅传播特定的架构更改,请在架构更改前将此属性设置为 True,然后在更改后将其设置为 False。 相反,若要传播大多数架构更改,而不是一个给定更改,请在架构更改前将此属性设置为 False,然后在更改后将其设置为 True

用于“返回首页”链接的箭头图标[Top]

使用 Transact-SQL

可以使用复制存储过程来指定是否复制这些架构更改。 您使用的存储过程取决于发布的类型。

创建不复制架构更改的快照发布或事务发布

创建不复制架构更改的合并发布

为快照发布或事务发布暂时禁用复制架构更改

  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 来重新启用复制架构更改。

用于“返回首页”链接的箭头图标[Top]

请参阅

概念

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

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