sp_helppublication (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例

返回有关发布的信息。 对于 Microsoft SQL Server发布,此存储过程在发布服务器上对发布数据库执行。 对于 Oracle 发布,此存储过程在分发服务器上对任何数据库执行。

Transact-SQL 语法约定

语法

  
sp_helppublication [ [ @publication = ] 'publication' ]  
    [ , [ @found=] found OUTPUT]  
    [ , [ @publisher = ] 'publisher' ]  

参数

[ @publication = ] 'publication' 要查看的发布的名称。 publication 为 sysname,默认值为 %,返回有关所有发布的信息。

[ @found = ] 'found' OUTPUT 指示返回行的标志。 找到 的是 int 和 OUTPUT 参数,默认值为 234561 表示找到发布。 0 表示找不到发布。

[ @publisher = ] 'publisher'指定非SQL Server发布服务器。 publisher 为 sysname,默认值为 NULL。

注意

SQL Server发布服务器请求发布信息时,不应指定 publisher。

结果集

列名称 数据类型 说明
pubid int 发布的 ID。
name sysname 发布的名称。
restricted int 标识为仅供参考。 不支持。 不保证以后的兼容性。
status tinyint 发布的当前状态。

0 = 非活动。

1 = 活动。
task 用于保持向后兼容性。
replication frequency tinyint 复制频率的类型:

0 = 事务性

1 = 快照
synchronization method tinyint 同步模式:

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

1 = 字符大容量复制

3 = 并发,这意味着使用本机大容量复制 (bcp实用工具) ,但在快照期间不会锁定表

4 = Concurrent_c,这意味着使用字符大容量复制,但在快照期间不会锁定表
description nvarchar(255) 发布的可选说明。
immediate_sync bit 表示是否在每次快照代理运行时创建或重新创建同步文件。
enabled_for_internet bit 表示是否通过文件传输协议 (FTP) 和其他服务将发布的同步文件在 Internet 上公开。
allow_push bit 表示是否允许对发布使用推送订阅。
allow_pull bit 表示是否允许对发布使用请求订阅。
allow_anonymous bit 表示是否允许对发布使用匿名订阅。
independent_agent bit 表示是否有用于该发布的独立分发代理。
immediate_sync_ready bit 表示快照代理是否生成了准备由新订阅使用的快照。 只有当发布被设置为始终有可用于新订阅或重新初始化订阅的快照,才定义此参数。
allow_sync_tran bit 表示是否允许对发布使用立即更新订阅。
autogen_sync_procs bit 表示是否自动生成存储过程以支持立即更新订阅。
snapshot_jobid binary(16) 已计划任务 ID。
retention int 为给定的发布保存的更改量(小时)。
has subscription bit 表示发布是否具有活动订阅。 1 表示发布具有活动订阅, 0 表示发布没有订阅。
allow_queued_tran bit 指定是否已启用在订阅服务器上禁用更改排队直到这些更改可以应用到发布服务器。 如果 为 0,则订阅服务器上的更改不会排队。
snapshot_in_defaultfolder bit 指定是否在默认文件夹中存储快照文件。 如果为 0,快照文件已存储在 alternate_snapshot_folder 指定的备用位置。 如果为 1,则可以在默认文件夹中找到快照文件。
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 格式。 0 指定不会压缩快照。
ftp_address sysname 分发服务器的 FTP 服务的网络地址。 指定供订阅服务器的分发代理或合并代理拾取的发布快照文件的位置。
ftp_port int 分发服务器的 FTP 服务的端口号。
ftp_subdirectory nvarchar(255) 指定供订阅服务器的分发代理或合并代理拾取的快照文件的位置(如果发布支持使用 FTP 传播快照)。
ftp_login sysname 用于连接到 FTP 服务的用户名。
allow_dts bit 指定发布允许数据转换。 0 指定不允许 DTS 转换。
allow_subscription_copy bit 指定是否已启用复制订阅该发布的订阅数据库的功能。 0 表示不允许复制。
centralized_conflicts bit 指定冲突记录是否存储在发布服务器上:

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

1 = 冲突记录存储在发布服务器上。
conflict_retention int 指定冲突保持期(天)。
conflict_policy int 指定使用排队更新订阅服务器选项时遵循的冲突解决策略。 可以是下列值之一:

1 = 发布服务器赢得冲突。

2 = 订阅服务器赢得冲突。

3 = 订阅已重新初始化。
queue_type 指定所使用的队列类型。 可以是下列值之一:

msmq = 使用 Microsoft 消息队列存储事务。

sql = 使用 SQL Server 存储事务。

注意:已停止对消息队列的支持。
backward_comp_level 数据库兼容级别,可以为下列值之一:

90 = Microsoft SQL Server 2005 (9.x)

100 = Microsoft SQL Server 2008 (10.0.x)
publish_to_AD bit 指定是否在 Microsoft Active Directory 中发布发布。 值为 1 表示已发布,值为 0 表示未发布。
allow_initialize_from_backup bit 指示订阅服务器是否能够从备份而不是从初始快照来初始化对此发布的订阅。 1 表示可以从备份初始化订阅, 0 表示无法初始化订阅。 有关详细信息,请参阅在不使用快照的情况下初始化事务订阅,而无需快照。
replicate_ddl int 指示发布是否支持架构复制。 1 表示复制在发布服务器上执行的数据定义语言 (DDL) 语句, 0 表示不复制 DDL 语句。 有关详细信息,请参阅对发布数据库进行架构更改
enabled_for_p2p int 表示发布是否可用于对等复制拓扑。 1 表示发布支持对等复制。 有关详细信息,请参阅 Peer-to-Peer Transactional Replication
publish_local_changes_only int 标识为仅供参考。 不支持。 不保证以后的兼容性。
enabled_for_het_sub int 指定发布是否支持非SQL Server订阅服务器。 值 1 表示支持非SQL Server订阅服务器。 值为 0 表示仅支持SQL Server订阅服务器。 有关详细信息,请参阅 Non-SQL Server Subscribers
enabled_for_p2p_conflictdetection int 指定分发代理是否为针对对等复制启用的发布检测冲突。 值为 1 表示检测到冲突。 有关详细信息,请参阅 Conflict Detection in Peer-to-Peer Replication
originator_id int 指定对等拓扑中某个节点的 ID。 如果 enabled_for_p2p_conflictdetection 设置为 1,则此 ID 用于冲突检测。 有关已经使用过的 ID 的列表,请查询 Mspeer_originatorid_history 系统表。
p2p_continue_onconflict int 指定检测到冲突时分发代理是否继续处理更改。 值为 1 表示代理继续处理更改。

**谨慎** 建议使用默认值 0。 当此选项设置为 1 时,分发代理尝试通过应用具有最高发起方 ID 的节点中的冲突行来聚合拓扑中的数据。 此方法不保证将会收敛。 您应确保检测到冲突之后拓扑保持一致。 有关详细信息,请参阅 Conflict Detection in Peer-to-Peer Replication中的“处理冲突”。
allow_partition_switch int 指定 ALTER TABLE 是否...可以针对已发布的数据库执行 SWITCH 语句。 有关详细信息,请参阅复制已分区表和索引
replicate_partition_switch int 指定 ALTER TABLE 是否...对已发布的数据库执行的 SWITCH 语句应复制到订阅服务器。 仅当 allow_partition_switch 设置为 1 时,此选项才有效。
enabled_for_p2p_lastwriter_conflictdetection int 从 SQL Server 2019 (15.x) CU 13 开始,指定分发代理是否检测到启用了对等复制的发布的最后写入器冲突。 值为 1 表示检测到最后一个写入器冲突。

返回代码值

0 (成功) 或 1 (失败)

注解

sp_helppublication 用于快照复制和事务复制。

sp_helppublication 将返回执行此过程的用户所拥有的所有发布的信息。

示例

DECLARE @myTranPub AS sysname
SET @myTranPub = N'AdvWorksProductTran' 

USE [AdventureWorks2022]
EXEC sp_helppublication @publication = @myTranPub
GO

权限

只有发布服务器上的 sysadmin 固定服务器角色成员或发布数据库上的 db_owner 固定数据库角色成员,或者发布访问列表 (PAL) 中的用户才能执行 sp_helppublication。

对于非SQL Server发布服务器,只有分发服务器上 sysadmin 固定服务器角色的成员或分发数据库上db_owner固定数据库角色的成员或 PAL 中的用户可以执行sp_helppublication。

另请参阅

查看和修改发布属性
sp_addpublication (Transact-SQL)
sp_changepublication (Transact-SQL)
sp_droppublication (Transact-SQL)
复制存储过程 (Transact-SQL)