sp_replshowcmds (Transact-SQL)

适用于: SQL Server Azure SQL 托管实例

以可读格式返回标记为复制的事务的命令。 sp_replshowcmds 仅当客户端连接(包括当前连接)未从日志读取复制的事务时,才能运行。 此存储过程在发布服务器上对发布数据库执行。

Transact-SQL 语法约定

语法

sp_replshowcmds [ [ @maxtrans = ] maxtrans ]
[ ; ]

参数

[ @maxtrans = ] maxtrans

要返回信息的事务数。 @maxtrans为 int,默认值为 1/a0>,它指定返回信息的挂起复制sp_replshowcmds的最大事务数。

结果集

sp_replshowcmds 是一个诊断过程,它返回有关从中执行它的发布数据库的信息。

列名称 数据类型 描述
xact_seqno binary(10) 命令的序列号。
originator_id int 命令发起器的 ID,始终 0为 .
publisher_database_id int 发布服务器数据库的 ID,始终 0为 .
article_id int 项目的 ID。
type int 命令的类型。
command nvarchar(1024) Transact-SQL 命令。

注解

sp_replshowcmds 用于事务复制。

使用 sp_replshowcmds时,可以查看当前未分发的事务(事务日志中剩余的尚未发送到分发服务器的事务)。

运行 sp_replshowcmds 在同一数据库中的 sp_replcmds 客户端会收到错误 18752。

若要避免此错误,第一个客户端必须断开连接,否则必须通过执行 sp_replflush来释放客户端作为日志读取器的角色。 在客户端与日志读取器断开连接后, sp_replshowcmds 可以成功运行。

注意

sp_replshowcmds 应仅运行以排查复制问题。

权限

只有 sysadmin 固定服务器角色的成员db_owner固定数据库角色的成员才能执行sp_replshowcmds