sp_helpmergepublication (Transact-SQL)

适用范围:SQL Server

返回有关合并发布的信息。 此存储过程在发布服务器上对发布数据库执行。

Transact-SQL 语法约定

语法

sp_helpmergepublication
    [ [ @publication = ] N'publication' ]
    [ , [ @found = ] found OUTPUT ]
    [ , [ @publication_id = ] 'publication_id' OUTPUT ]
    [ , [ @reserved = ] N'reserved' ]
    [ , [ @publisher = ] N'publisher' ]
    [ , [ @publisher_db = ] N'publisher_db' ]
[ ; ]

参数

[ @publication = ] N'publication'

发布的名称。 @publicationsysname,默认值 %为 ,返回有关当前数据库中所有合并发布的信息。

[ @found = ] 找到 OUTPUT

指示返回行的标志。 @found是 int 类型的 OUTPUT 参数。

  • 1 指示找到发布。
  • 0 指示找不到发布。

[ @publication_id = ] 'publication_id' OUTPUT

发布的标识号。 @publication_id是 uniqueidentifier 类型的 OUTPUT 参数。

[ @reserved = ] N'reserved'

标识为仅供参考。 不支持。 不保证以后的兼容性。

[ @publisher = ] N'publisher'

发布服务器的名称。 @publisher为 sysname,默认值为 NULL.

[ @publisher_db = ] N'publisher_db'

发布数据库的名称。 @publisher_db为 sysname,默认值为 NULL.

结果集

列名称 数据类型 描述
id int 发布在结果集列表中的连续顺序。
name sysname 发布的名称。
description nvarchar(255) 对发布的说明。
status tinyint 指示发布数据何时可用。
retention int 用于保存对发布中项目所做更改的元数据的时间量。 此时间段单位可以为天、星期、月或年。 有关单位的信息,请参阅 retention_period_unit 列。
sync_mode tinyint 该发布的同步模式:

0 = 本机大容量复制程序 (bcp 实用工具)

1 = 字符大容量复制
allow_push int 确定是否可以为给定发布创建推送订阅。 0 表示不允许推送订阅。
allow_pull int 确定是否可以为给定发布创建请求订阅。 0 表示不允许请求订阅。
allow_anonymous int 确定是否可以为给定发布创建匿名订阅。 0 表示不允许匿名订阅。
centralized_conflicts int 确定是否将冲突记录存储在给定发布服务器上:

0 = 冲突记录存储在发布服务器和导致冲突的订阅服务器上。

1 = 所有冲突记录都存储在发布服务器上。
priority float(8) 环回订阅的优先级。
snapshot_ready tinyint 指示该发布的快照是否可以使用:

0 = 快照已准备就绪,可供使用。

1 = 快照尚未准备好使用。
publication_type int 发布的类型:

0 = 快照。

1 = 事务性。

2 = 合并。
pubid uniqueidentifier 该发布的唯一标识符。
snapshot_jobid binary(16) 快照代理的作业 ID。 若要获取 sysjobs 系统表中快照作业的条目,必须将此十六进制值转换为 uniqueidentifier
enabled_for_internet int 确定是否为 Internet 启用发布。 如果 1为发布,则发布同步文件将 C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\Ftp 放入目录中。 用户必须创建文件传输协议 (FTP) 目录。 如果 0为发布启用了 Internet 访问,则不会启用发布。
dynamic_filter int 指示是否使用参数化行筛选器。 0 表示未使用参数化行筛选器。
has_subscription bit 指示发布是否具有任何订阅。 0 表示当前没有对此发布的订阅。
snapshot_in_default_folder bit 指定快照文件是否存储在默认文件夹中。

如果 1,可以在默认文件夹中找到快照文件。

如果 0快照文件存储在指定的 alt_snapshot_folder备用位置。 备用位置可以位于另一台服务器、网络驱动器或可移动媒体(如可移动磁盘)上。 也可以将快照文件保存到 FTP 站点以供订阅服务器以后检索。

注意: 此参数可能为 true,并且仍具有参数 alt_snapshot_folder 中的位置。 这个组合指定将快照文件存储在默认位置和替代位置。
alt_snapshot_folder nvarchar(255) 指定快照的备用文件夹的位置。
pre_snapshot_script nvarchar(255) 指定指向在订阅服务器上应用快照时合并代理在任何复制的对象脚本之前运行的.sql文件的指针
post_snapshot_script nvarchar(255) 指定指向.sql文件的指针,该文件合并代理在初始同步期间应用所有其他复制的对象脚本和数据之后运行。
compress_snapshot bit 指定写入位置的 alt_snapshot_folder 快照压缩为 Microsoft CAB 格式。
ftp_address sysname 分发服务器的 FTP 服务的网络地址。 指定要选取合并代理的发布快照文件的位置。
ftp_port int 分发服务器的 FTP 服务的端口号。 ftp_port 默认值为 21. 指定供合并代理拾取的发布快照文件所在的位置。
ftp_subdirectory nvarchar(255) 指定当使用 FTP 传递快照时,快照文件供合并代理拾取的位置。
ftp_login sysname 用于连接到 FTP 服务的用户名。
conflict_retention int 指定保留冲突的保持期(天)。 指定的天数过后,冲突行将从冲突表中清除掉。
keep_partition_changes int 指定是否对此发布的同步进行优化。 keep_partition_changes 默认值为 0. 一个值 0 意味着同步未优化,在分区中的数据发生更改时,会验证发送到所有订阅服务器的分区。

1 表示同步已优化,并且仅影响具有已更改分区中的行的订阅服务器。

注意: 默认情况下,合并发布使用预计算分区,这比此选项提供更大的优化度。 有关详细信息,请参阅 参数化筛选器 - 参数化行筛选器参数化筛选器 - 针对预计算分区进行优化。
allow_subscription_copy int 指定是否已启用复制订阅该发布的订阅数据库的功能。 不允许复制值 0
allow_synctoalternate int 指定是否允许备用同步伙伴与该发布服务器同步。 0值意味着不允许同步伙伴。
validate_subscriber_info nvarchar(500) 列出用于检索订阅服务器信息和验证订阅服务器上的参数化行筛选条件的函数。 有助于验证信息是否与每个合并一致地分区。
backward_comp_level int 数据库兼容性级别,可以是以下值之一:

90 = SQL Server 2005 (9.x)

90 = SQL Server 2005 (9.x) SP1

90 = SQL Server 2005 (9.x) SP2

100 = SQL Server 2008 (10.0.x)
publish_to_activedirectory bit 指定是否将发布信息发布到 Active Directory。 0这意味着发布信息无法从 Active Directory 获取。

此参数已弃用,并维护脚本的向后兼容性。 您不再能够向 Active Directory 中添加发布信息。
max_concurrent_merge int 并发合并进程数。 如果 0存在,则任何给定时间运行的并发合并进程数没有限制。
max_concurrent_dynamic_snapshots int 针对合并发布可以运行的最大并发已筛选数据快照会话数。 如果 0存在限制,则任何给定时间都可以针对发布同时运行的最大并发筛选数据快照会话数没有限制。
use_partition_groups int 确定是否使用预计算分区。 使用预计算分区的值 1
num_of_articles int 发布中的项目个数。
replicate_ddl int 表示是否复制对已发布表的架构更改。 一个值 1 ,表示将复制架构更改。
publication_number smallint 分配给该发布的编号。
allow_subscriber_initiated_snapshot bit 确定订阅服务器是否可以启动已筛选数据快照生成进程。 一个值 1 ,表示订阅服务器可以启动快照过程。
allow_web_synchronization bit 确定是否为 Web 同步启用发布。 一个值 1 ,表示已启用 Web 同步。
web_synchronization_url nvarchar(500) 用于 Web 同步的 Internet URL。
allow_partition_realignment bit 确定在发布服务器上对行所做的修改导致该行更改其分区时是否要将删除内容发送到订阅服务器。 一个值 1 ,表示删除将发送到订阅服务器。 有关详细信息,请参阅sp_addmergepublication(Transact-SQL)。
retention_period_unit tinyint 指定用于定义保持期的单位。 这可以是以下值之一:

0 = day

1 = week

2 = 月份

3 = year
has_downloadonly_articles bit 指示属于发布的所有项目是否为仅用于下载的项目。 指示存在仅下载的文章的值 1
decentralized_conflicts int 指示是否在导致冲突的订阅服务器上存储冲突记录。 0指示冲突记录未存储在订阅服务器上的值。 指示冲突记录存储在订阅服务器上的值 1
generation_leveling_threshold int 指定一代中包含的更改数。 生成是指已传递给发布服务器或订阅服务器的更改集合
automatic_reinitialization_policy bit 指示是否在进行自动重新初始化之前从订阅服务器上载更改。 一个值 1 指示在自动重新初始化之前从订阅服务器上传更改。 值为 0 表示在自动重新初始化之前不会上传更改。

返回代码值

0(成功)或 1(失败)。

注解

sp_helpmergepublication 用于合并复制。

权限

发布发布访问列表的成员可以为该发布执行 sp_helpmergepublication发布数据库上db_owner固定数据库角色的成员可以针对所有发布的信息执行sp_helpmergepublication

示例

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

USE [AdventureWorks2022]
EXEC sp_helpmergepublication @publication = @publication;
GO