如何复制架构更改(复制 Transact-SQL 编程)
如果您对已发布项目进行以下架构更改,默认情况下,它们会传播到 MicrosoftSQL Server 订阅服务器:
ALTER TABLE
ALTER VIEW
ALTER PROCEDURE
ALTER FUNCTION
ALTER TRIGGER
可以使用复制存储过程来指定是否复制这些架构更改。 您使用的存储过程取决于发布的类型。
注意 |
---|
ALTER TABLE DROP COLUMN 始终被复制到其分区包含要删除的列的所有订阅,而不考虑 @replicate_ddl 参数的值。 |
创建不复制架构更改的快照发布或事务发布
- 在发布服务器上,对发布数据库执行sp_addpublication (Transact-SQL),将 @replicate_ddl 的值指定为 0。 有关详细信息,请参阅如何创建发布(复制 Transact-SQL 编程)。
创建不复制架构更改的合并发布
- 在发布服务器上,对发布数据库执行sp_addmergepublication (Transact-SQL),将 @replicate_ddl 的值指定为 0。 有关详细信息,请参阅如何创建发布(复制 Transact-SQL 编程)。
为快照发布或事务发布暂时禁用复制架构更改
对于包含架构更改复制的发布,执行 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 来重新启用复制架构更改。