如何查看和修改发布属性(复制 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。有关那些在更改后要求生成新快照或重新初始化的属性的详细信息,请参阅更改发布和项目属性

查看快照的属性

更改快照的属性

示例

此事务复制示例将返回该发布的属性。

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