更改合并发布的属性。此存储过程在发布服务器的发布数据库上执行。
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),可以是下表所列值之一。
下表描述可以更改的发布属性和对这些属性值的限制。
属性 | 值 | 描述 |
---|---|---|
description | 对发布的描述。 | |
status | active 或 unsynced | 发布状态。 |
retention | 给定发布的更改的保存天数。 | |
sync_mode | native 或 character | 发布的订阅服务器的初始同步模式。如果是 native,则表示生成所有表的本机模式大容量复制程序输出。如果是 character,则表示生成所有表的字符模式大容量复制程序输出。非 SQL Server 订阅服务器要求使用 character 模式。 |
Allow_push | true 或 false | 给定的发布允许强制订阅。 |
Allow_pull | true 或 false | 给定的发布允许请求订阅。 |
allow_anonymous | true 或 false | 给定的发布允许匿名订阅。 |
enabled_for_internet | true 或 false | 启用发布用于 Internet,并指定是否可以通过 FTP 向订阅服务器传输快照文件。如果是 true,则将发布的同步文件放入 C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp 目录中。 |
centalized_conflicts | true 或 false | 如果是 true,则将冲突记录存储在给定的发布服务器上。如果是 false,则将冲突记录存储在检测到冲突的服务器上,该服务器既可以是发布服务器也可以是订阅服务器。 |
snapshot_ready | true 或 false | 可使用用于发布的快照。 |
snapshot_in_defaultfolder | true 或 false | 指定是否将快照保存在默认文件夹中。如果是 true,则可以在默认文件夹中找到快照文件。如果是 false,则表示快照文件将存储在 alt_snapshot_folder 指定的备用位置中。注意该参数可以为 true,并且在 alt_snapshot_folder 参数中指定有位置。该组合指定将快照文件同时存储在默认位置和备用位置。 |
alt_snapshot_folder | 指定快照的备用文件夹的位置。 | |
pre_snapshot_script | 指定指向 .sql 文件位置的指针。pre_snapshot_script 的数据类型为 nvarchar(255),默认设置为 NULL。在订阅服务器上应用快照时,合并代理程序将在运行任何复制的对象脚本之前运行快照前脚本。 | |
post_snapshot_script | 指定指向 .sql 文件位置的指针。分发代理程序或合并代理程序将在所有其它复制的对象脚本和数据已在初始同步过程中应用之后才运行快照后脚本。 | |
compress_snapshot | true 或 false | 指定将写入 @alt_snapshot_folder 位置的快照压缩成 Microsoft® CAB 格式。compress_snapshot 的数据类型为 nvarchar(5),默认设置为 FALSE。false 指定不压缩快照;而 true 指定将压缩快照。不能压缩默认文件夹中的快照。 |
ftp_address | 是分发服务器的 FTP 服务的网络地址。指定存储发布快照文件的位置。 | |
ftp_port | 是分发服务器的 FTP 服务的端口号。指定存储发布快照文件的 FTP 站点的 TCP 端口号。 | |
ftp_subdirectory | 指定在发布通过使用 FTP 支持传播快照时创建快照文件的位置。 | |
ftp_login | 是连接到 FTP 服务的用户名。 | |
ftp_password | 是连接到 FTP 服务的用户密码。 | |
conflict_retention | 指定保留冲突的保持期(以天为单位)。 | |
allow_subscription_copy | true 或 false | 启用或禁用复制订阅此发布的订阅数据库的能力。 |
allow_synctoalternate | true 或 false | 使可选同步伙伴与该发布服务器同步。 |
validate_subscriber_info | 列出正用于检索订阅服务器信息的函数,并验证正由订阅服务器用于验证信息分区是否一致的动态筛选准则。例如,如果 SUSER_SNAME() 用于动态筛选,则该参数应该指定为 @validate_subscriber_info=N'SUSER_SNAME()'。有关更多信息,请参见验证订阅服务器信息。 | |
publish_to_activedirectory | 指定是否将发布信息发布到 Microsoft Active Directory™。只有运行 Windows® 2000 操作系统的服务器才能使用该功能。true 值将发布信息添加到 Microsoft Active Directory。 | |
dynamic_filters | true 或 false | 指定是否在动态子句上筛选发布。 |
max_concurrent_merge | 最大并发合并进程数。该属性的 0 值表示对在任何给定时间运行的并发合并进程数没有限制。该属性对可以同时在合并发布上运行的并发合并进程数设置限制。如果同时调度的快照进程数比该值允许运行的快照进程数要多,则多出的作业被放入队列中,一直等到当前运行的合并进程结束。 | |
max_concurrent_dynamic_snapshots | 在合并发布上可以运行的最大并发动态快照会话数。如果为 0,表示对在任意给定时间同时在发布上运行的并发动态快照会话数没有限制。该属性对可以同时在合并发布上运行的并发快照进程数设置限制。如果同时调度的快照进程数比该值允许运行的快照进程数要多,则多出的作业被放入队列中,一直等到当前运行的合并进程结束。 | |
NULL(默认值) |
[@force_invalidate_snapshot = ] force_invalidate_snapshot
确认此存储过程采取的操作可能使现有快照无效。force_invalidate_snapshot 的数据类型为 bit,默认设置为 0。0 指定对项目的更改不会导致快照无效。如果存储过程检测到更改确实需要新快照,则会发生错误,且不会进行任何更改。而 1 指定对发布所做的更改可能导致快照无效,而且如果现有订阅需要新的快照,则值 1 提供适当的权限,使现有快照被标记为废弃并生成新快照。
[@force_reinit_subscription = ] force_reinit_subscription
确认此存储过程所采取的操作可能要求重新初始化现有的订阅。force_reinit_subscription 的数据类型为 bit,默认设置为 0。0 指定对项目的更改不会导致重新初始化订阅。如果存储过程检测到更改需要重新初始化订阅,则会发生错误,且不会进行任何更改。而 1 指定对项目的更改将导致重新初始化现有的订阅,且提供使订阅重新初始化发生的权限。
0(成功)或 1(失败)
sp_changemergepublication 用于合并复制。
若要使用 @publish_to_active_directory 参数列出 Active Directory 的发布对象,必须已经在 Active Directory 中创建了 SQL Server 对象。有关更多信息,请参见 Active Directory 服务。
只有 sysadmin 固定服务器角色成员或 db_owner 固定数据库角色成员才能执行 sp_changemergepublication。