复制架构更改
本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中复制架构更改。
如果对发布的项目进行以下架构更改,则会默认将其传播到 Microsoft SQL Server 订阅服务器:
ALTER TABLE
ALTER VIEW
ALTER PROCEDURE
ALTER FUNCTION
ALTER TRIGGER
本主题内容
开始之前:
复制架构更改,使用:
开始之前
限制和局限
- ALTER TABLE ... DROP COLUMN 语句将始终复制到其订阅包含要删除的列的所有订阅服务器,即使禁用对架构更改的复制也是如此。
使用 SQL Server Management Studio
如果不想复制发布的架构更改,请在“发布属性 - <发布>”对话框中禁用对架构更改的复制。 有关访问此对话框的详细信息,请参阅 View and Modify Publication Properties。
禁用对架构更改的复制
在“发布属性 - <发布>”对话框的“订阅选项”页上,将“复制架构更改”属性值设置为“False”。
选择“确定”。
若要仅传播特定的架构更改,请在架构更改前将此属性设置为 True ,然后在更改后将其设置为 False 。 相反,若要传播大多数架构更改,而不是一个给定更改,请在架构更改前将此属性设置为 “False” ,然后在更改后将其设置为 “True” 。
“使用 Transact-SQL”
可以使用复制存储过程来指定是否复制这些架构更改。 您使用的存储过程取决于发布的类型。
创建不复制架构更改的快照发布或事务发布
- 在发布数据库中的发布服务器上,执行 sp_addpublication (Transact-SQL),并将
@replicate_ddl
的值指定为0
。 有关详细信息,请参阅 Create a Publication。
创建不复制架构更改的合并发布
- 在发布数据库中的发布服务器上,执行 sp_addmergepublication (Transact-SQL),并将
@replicate_ddl
的值指定为0
。 有关详细信息,请参阅 Create a Publication。
为快照发布或事务发布暂时禁用复制架构更改
对于包含架构更改复制的发布,执行 sp_changepublication (Transact-SQL),将
@property
的值指定为replicate_ddl
并将@value
的值指定为0
。对已发布对象执行 DDL 命令。
(可选)通过执行 sp_changepublication (Transact-SQL),将
@property
的值指定为replicate_ddl
并将@value
的值指定为1
来重新启用架构更改复制。
为合并发布暂时禁用复制架构更改
对于包含架构更改复制的发布,执行 sp_changemergepublication (Transact-SQL),将
@property
的值指定为replicate_ddl
并将@value
的值指定为0
。对已发布对象执行 DDL 命令。
(可选)通过执行 sp_changemergepublication (Transact-SQL),将
@property
的值指定为replicate_ddl
并将@value
的值指定为1
来重新启用架构更改复制。