sp_helppublication (Transact-SQL)
返回有关发布的信息。对于 Microsoft SQL Server 发布,此存储过程在发布服务器的发布数据库中执行。对于 Oracle 发布,此存储过程在分发服务器的任何数据库中执行。
语法
sp_helppublication [ [ @publication = ] 'publication' ]
[ , [ @found=] found OUTPUT]
[ , [ @publisher = ] 'publisher' ]
参数
[ @publication = ] 'publication'
要查看的发布的名称。publication 的数据类型为 sysname,默认值为 %,该值表示返回有关所有发布的信息。[ @found = ] **'found'**OUTPUT
指示返回行的标志。found的数据类型为 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 |
|
数据库兼容级别,可以为下列值之一: 10 = Microsoft SQL Server 7.0 20 = SQL Server 7.0 Service Pack 1 30 = SQL Server 7.0 Service Pack 2 35 = SQL Server 7.0 Service Pack 3 40 = Microsoft SQL Server 2000 50 = SQL Server 2000 Service Pack 1 60 = SQL Server 2000 Service Pack 3 90 = Microsoft SQL Server 2005 100 = Microsoft SQL Server 2008 |
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 指示发布支持对等复制。有关详细信息,请参阅对等事务复制。 |
publish_local_changes_only |
int |
标识为仅供参考。不提供支持。不保证以后的兼容性。 |
enabled_for_het_sub |
int |
指定发布是否支持非 SQL Server 订阅服务器。值 1 表示支持非 SQL Server 订阅服务器。值 0 表示仅支持 SQL Server 订阅服务器。有关详细信息,请参阅非 SQL Server 订阅服务器。 |
enabled_for_p2p_conflictdetection |
int |
指定分发代理是否为针对对等复制启用的发布检测冲突。值为 1 表示进行冲突检测。有关详细信息,请参阅对等复制中的冲突检测。 |
originator_id |
int |
指定对等拓扑中某个节点的 ID。如果 enabled_for_p2p_conflictdetection 设置为 1,则此 ID 用于冲突检测。有关已经使用过的 ID 的列表,请查询 Mspeer_originatorid_history 系统表。 |
p2p_continue_onconflict |
int |
指定检测到冲突时分发代理是否继续处理更改。值 1 表示代理将继续处理更改。
注意
建议使用默认值 0。如果此选项设置为 1,分发代理将尝试应用来自具有最高发起方 ID 的节点的冲突行来收敛拓扑中的数据。此方法不保证将会收敛。您应确保检测到冲突之后拓扑保持一致。有关详细信息,请参阅对等复制中的冲突检测中的“处理冲突”。
|
alllow_partition_switch |
int |
指定是否对已发布的数据库执行 ALTER TABLE…SWITCH 语句。有关详细信息,请参阅复制已分区表和索引。 |
replicate_partition_switch |
int |
指定是否应将对已发布的数据库执行的 ALTER TABLE…SWITCH 语句复制到订阅服务器。仅在 allow_partition_switch 设置为 1 时,此选项才有效。 |
返回代码值
0(成功)或 1(失败)
注释
sp_helppublication 用于快照复制和事务复制。
sp_helppublication 将返回执行此过程的用户所拥有的所有发布的信息。
示例
DECLARE @myTranPub AS sysname
SET @myTranPub = N'AdvWorksProductTran'
USE [AdventureWorks2008R2]
EXEC sp_helppublication @publication = @myTranPub
GO
权限
只有发布服务器上的 sysadmin 固定服务器角色成员或发布数据库上的 db_owner 固定数据库角色成员,或者发布访问列表 (PAL) 中的用户才能执行 sp_helppublication。
对于非 SQL Server 发布服务器,只有分发服务器上的 sysadmin 固定服务器角色成员或分发数据库上的 db_owner 固定数据库角色成员,或者 PAL 中的用户才能执行 sp_helppublication。