sp_changemergepublication (Transact-SQL)

更新日期: 2006 年 12 月 12 日

更改合并发布的属性。此存储过程在发布服务器的发布数据库中执行。

主题链接图标 Transact-SQL 语法约定


sp_changemergepublication [ @publication= ] 'publication'
    [ , [ @property= ] 'property' ]
    [ , [ @value= ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

[ @publication = ] 'publication'

发布的名称。publication 的数据类型为 sysname,无默认值。

[ @property=] 'property'

给定发布要更改的属性。property 的数据类型为 sysname,可以是下表所列值之一。

[ @value=] 'value'

指定属性的新值。value 的数据类型为 nvarchar(255),可以是下表所列值之一。

下表说明了可更改的发布属性以及对这些属性值的限制。

属性 说明

allow_anonymous

True

允许匿名订阅。

 

False

不允许匿名订阅。

allow_partition_realignment

True

向订阅服务器发送删除指令,删除不再属于订阅服务器分区的数据,从而反映分区更改结果。这是默认行为。

 

False

将旧分区的数据留在订阅服务器上,对发布服务器上的此数据的更改不会复制到此订阅服务器上,但在订阅服务器上进行的更改会复制到发布服务器上。此属性值可用于保留旧分区的订阅中的数据,以便满足用户访问历史数据的需求。

allow_pull

True

给定的发布允许请求订阅。

 

False

给定的发布不允许请求订阅。

allow_push

True

给定的发布允许推送订阅。

 

False

给定的发布不允许推送订阅。

allow_subscriber_initiated_snapshot

True

订阅服务器可以启动快照进程。

 

False

订阅服务器无法启动快照进程。

allow_subscription_copy

True

允许复制订阅此发布的订阅数据库。

 

False

禁止复制订阅此发布的订阅数据库。

allow_synctoalternate

True

允许备用同步伙伴与此发布服务器同步。

 

False

禁止备用同步伙伴与此发布服务器同步。

allow_web_synchronization

True

可以通过 HTTPS 同步订阅。

 

False

不能通过 HTTPS 同步订阅。

alt_snapshot_folder

 

指定快照的备用文件夹的位置。

automatic_reinitialization_policy

1

在重新初始化订阅之前,从订阅服务器上载更改。

 

0

不先上载更改就重新初始化订阅。

centralized_conflicts

True

所有冲突记录都存储在发布服务器上。若要更改此属性,需要重新初始化现有的订阅服务器。

 

False

冲突记录存储在冲突解决中落选的服务器上。若要更改此属性,需要重新初始化现有的订阅服务器。

compress_snapshot

True

备用快照文件夹中的快照被压缩为 Microsoft CAB 格式。不能压缩默认快照文件夹中的快照。若要更改此属性,则需要新的快照。

 

False

不压缩快照,这是复制的默认行为。若要更改此属性,则需要新的快照。

conflict_logging

publisher

在发布服务器上存储冲突记录。

 

subscriber

在导致冲突的订阅服务器上存储冲突记录。Microsoft SQL Server 2005 Compact Edition 订阅服务器不支持此值。

 

both

在发布服务器和订阅服务器上都存储冲突记录。

conflict_retention

 

int,用于指定冲突的保持期,以天为单位。将 conflict_retention 设置为 0 表示不需要清除冲突。

description

 

对发布的说明。

dynamic_filters

True

根据动态子句筛选发布。

 

False

不对发布进行动态筛选。

enabled_for_internet

True

为 Internet 启用发布,此时可以使用文件传输协议 (FTP) 向订阅服务器传输快照文件。发布的同步文件放在 C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp 目录中。

 

False

不为 Internet 启用发布。

ftp_address

 

分发服务器 FTP 服务的网络地址。指定存储发布快照文件的位置。

ftp_login

 

用于连接到 FTP 服务的用户名。

ftp_password

 

用于连接到 FTP 服务的用户密码。

ftp_port

 

分发服务器 FTP 服务的端口号。指定存储发布快照文件的 FTP 站点的 TCP 端口号。

ftp_subdirectory

 

指定发布支持使用 FTP 支持传播快照时,创建快照文件的位置。

generation_leveling_threshold

int

指定生成中包含的更改次数。生成是指已传递给发布服务器或订阅服务器的更改集合。有关详细信息,请参阅合并复制如何跟踪和枚举更改

keep_partition_changes

True

优化同步,并且只影响更改的分区中包含行的订阅服务器。若要更改此属性,则需要新的快照。

 

False

不优化同步,分区中的数据更改时,将验证发送到所有订阅服务器的分区。若要更改此属性,则需要新的快照。

max_concurrent_merge

 

int,表示可对发布执行的并发合并进程的最大数目。如果此属性值为 0,则表示在任何给定时间都不限制运行的并发合并进程数。如果计划同时执行的合并进程数超出这一数值,多出的作业将被放到队列中等待,直到当前运行的合并进程完成。

max_concurrent_dynamic_snapshots

 

int,表示并发快照会话的最大数目,这些会话将生成一个筛选后的快照,可对使用参数化行筛选器的合并发布执行。如果为 0,则不限制可同时运行的并发筛选数据快照会话的最大数目。如果计划同时执行的快照进程数超出这一数值,多出的作业将被放到队列中等待,直到当前运行的合并进程完成。

post_snapshot_script

 

指定指向 .sql 文件位置的指针。在初始同步过程中应用了所有其他复制的对象脚本和数据之后,分发代理或合并代理才运行快照后脚本。若要更改此属性,则需要新的快照。

pre_snapshot_script

 

指定指向 .sql 文件位置的指针。在订阅服务器上应用快照时,合并代理将在运行任何复制的对象脚本之前运行快照前脚本。若要更改此属性,则需要新的快照。

publication_compatibility_level

90RTM

Microsoft SQL Server 2005

 

80SP3

Microsoft SQL Server 2000 Service Pack 3

 

80SP1

SQL Server 2000 Service Pack 1

 

80RTM

SQL Server 2000

 

70SP3

Microsoft SQL Server 7.0 Service Pack 3

 

70SP2

SQL Server 7.0 Service Pack 2

 

70SP1

SQL Server 7.0 Service Pack 1

 

70RTM

SQL Server 7.0

publish_to_activedirectory

True

已不推荐使用该参数,支持该参数只是为了让脚本能够向后兼容。不能再向 Microsoft Active Directory 中添加发布信息。

 

False

将发布信息从 Active Directory 上删除。

replicate_ddl

1

复制在发布服务器上执行的数据定义语言 (DDL) 语句。

 

0

不复制 DDL 语句。

retention

 

int,表示要为给定的发布保存其更改的 retention_period_unit 单元的数目。如果在保持期内没有同步该订阅,并在分发服务器上使用清除操作删除了该订阅本应接收到的挂起更改,则该订阅将过期,必须重新初始化。允许的最大保持期为当前日期到 9999 年 12 月 31 日之间的天数。

合并发布的保持期有 24 小时的宽限期,以便不同时区中的订阅服务器均能完成相关操作。例如,如果将保持期设置为一天,则实际的保持期为 48 小时。
ms186905.note(zh-cn,SQL.90).gif注意:

retention_period_unit

day

按天指定保持期。

 

week

按周指定保持期。

 

month

按月指定保持期。

 

year

按年指定保持期。

snapshot_in_defaultfolder

True

在默认快照文件夹中存储快照文件。

 

False

alt_snapshot_folder 指定的替代位置存储快照文件。此组合指定将快照文件同时存储在默认位置和备用位置中。

snapshot_ready

True

可使用发布的快照。

 

False

无法使用发布的快照。

status

active

发布处于活动状态。

 

inactive

发布处于非活动状态。

sync_mode

native

bcp native

将所有表的本机模式大容量复制程序输出用于初始快照。

 

character

bcp character

将所有表格的字符模式大容量复制程序输出用于初始快照,所有非 SQL Server 订阅服务器必须执行此操作。

use_partition_groups

True

发布使用预计算分区。

 

False

发布不使用预计算分区。

validate_subscriber_info

 

列出将用于检索订阅服务器信息的函数,并验证订阅服务器当前用于验证信息分区是否一致的动态筛选条件。

web_synchronization_url

 

用于 Web 同步的 Internet URL 的默认值。

NULL(默认值)

 

返回 property 所支持值的列表。

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

确认此存储过程所执行的操作是否会使现有快照失效。force_invalidate_snapshot 的数据类型为 bit,默认值为 0

0 指定更改发布不会导致快照无效。如果该存储过程检测到更改确实需要新的快照,则会发生错误,并且不执行任何更改。

1 指定更改发布可能导致快照无效。如果存在需要新快照的现有订阅,则提供该现有快照的权限,以便将该快照标记为过时,并生成新快照。

有关在更改时需要生成新快照的属性,请参阅“备注”部分。

[ @force_reinit_subscription = ] force_reinit_subscription

确认此存储过程所执行的操作是否需要重新初始化现有订阅。force_reinit_subscription 的数据类型为 bit,默认值为 0

0 指定更改发布不会导致要求重新初始化订阅。如果该存储过程检测到更改将需要重新初始化现有订阅,则会发生错误,并且不执行任何更改。

1 指定更改发布会导致重新初始化现有订阅,并提供重新初始化订阅的权限。

有关在更改时需要重新初始化所有现有订阅的属性,请参阅“备注”部分。

0(成功)或 1(失败)

sp_changemergepublication 用于合并复制。

更改下列属性需要生成新的快照,因而必须将 force_invalidate_snapshot 参数的值指定为 1

  • alt_snapshot_folder
  • compress_snapshot
  • dynamic_filters
  • ftp_address
  • ftp_login
  • ftp_password
  • ftp_port
  • ftp_subdirectory
  • post_snapshot_script
  • publication_compatibility_level(仅适用于 80SP3
  • pre_snapshot_script
  • snapshot_in_defaultfolder
  • sync_mode
  • use_partition_groups

更改下列属性需要重新初始化现有订阅,因而必须将 force_reinit_subscription 参数的值指定为 1

  • dynamic_filters
  • validate_subscriber_info

若要使用 publish_to_active_directory 列出 Active Directory 的发布对象,必须已在 Active Directory 中创建了 SQL Server 对象。

只有 sysadmin 固定服务器角色的成员或 db_owner 固定数据库角色的成员才能执行 sp_changemergepublication

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge'; 

-- Disable DDL replication for the publication.
USE [AdventureWorks]
EXEC sp_changemergepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0,
  @force_invalidate_snapshot = 0, 
  @force_reinit_subscription = 0;
GO

发布日期 历史记录

2006 年 12 月 12 日

新增内容:
  • 增加了关于 generation_leveling_threshold 值的信息。

社区附加资源

添加
显示: