sp_helppublication (Transact-SQL)
返回有关发布的信息。 对于 Microsoft SQL Server发布,此存储过程在发布服务器上对发布数据库执行。 对于 Oracle 发布,此存储过程在分发服务器上对任何数据库执行。
语法
sp_helppublication [ [ @publication = ] 'publication' ]
[ , [ @found=] found OUTPUT]
[ , [ @publisher = ] 'publisher' ]
参数
[ @publication = ] 'publication'
要查看的发布的名称。 publication 为 sysname,默认值为 %,返回有关所有发布的信息。
[ @found = ] 'found' OUTPUT
指示返回行的标志。 找到 的是 int 和 OUTPUT 参数,默认值为 23456。 1 表示找到发布。 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)
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈