如何查看和修改发布属性(复制 Transact-SQL 编程)
可以使用复制存储过程以编程方式修改发布并返回它们的属性。 您使用的存储过程取决于发布的类型。
查看快照发布或事务发布的属性
- 执行 sp_helppublication,为 @publication 参数指定该发布的名称。 如果未指定此参数,则会返回发布服务器上所有发布的相关信息。
更改快照发布或事务发布的属性
执行 sp_changepublication,在 @property 参数中指定要更改的发布属性,并在 @value 参数中指定此属性的新值。
注意 如果该更改将要求生成新快照,则还必须将 @force_invalidate_snapshot 的值指定为 1,而如果该更改将要求重新初始化订阅服务器,则必须将 @force_reinit_subscription 的值指定为 1。 有关那些在更改后要求生成新快照或重新初始化的属性的详细信息,请参阅更改发布和项目属性。
查看合并发布的属性
- 执行 sp_helpmergepublication,为 @publication 参数指定该发布的名称。 如果未指定此参数,则会返回发布服务器上所有发布的相关信息。
更改合并发布的属性
执行 sp_changemergepublication,在 @property 参数中指定要更改的发布属性,并在 @value 参数中指定此属性的新值。
注意 如果该更改将要求生成新快照,则还必须将 @force_invalidate_snapshot 的值指定为 1,而如果该更改将要求重新初始化订阅服务器,则必须将 @force_reinit_subscription 的值指定为 1。有关那些在更改后要求生成新快照或重新初始化的属性的详细信息,请参阅更改发布和项目属性。
查看快照的属性
- 执行 sp_helppublication_snapshot,为 @publication 参数指定该发布的名称。
更改快照的属性
- 执行 sp_changepublication_snapshot,为相应的快照参数指定一个或多个新的快照属性。
示例
此事务复制示例将返回该发布的属性。
DECLARE @myTranPub AS sysname
SET @myTranPub = N'AdvWorksProductTran'
USE [AdventureWorks2008R2]
EXEC sp_helppublication @publication = @myTranPub
GO
此事务复制示例将为发布禁用架构复制。
DECLARE @publication AS sysname
SET @publication = N'AdvWorksProductTran'
-- Turn off DDL replication for the transactional publication.
USE [AdventureWorks2008R2]
EXEC sp_changepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0
GO
此合并复制示例将返回该发布的属性。
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
USE [AdventureWorks2008R2]
EXEC sp_helpmergepublication @publication = @publication;
GO
此合并复制示例将为发布禁用架构复制。
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks2008R2]
EXEC sp_changemergepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0,
@force_invalidate_snapshot = 0,
@force_reinit_subscription = 0;
GO