sp_replshowcmds (Transact-SQL)

适用于:SQL Server (所有受支持的版本) Azure SQL 托管实例

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

主题链接图标Transact-SQL 语法约定

语法

  
sp_replshowcmds [ @maxtrans = ] maxtrans  

参数

[ @maxtrans = ] maxtrans 要返回信息的事务数。 maxtransint,默认值为 1,它指定 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

另请参阅

错误消息
sp_replcmds (Transact-SQL)
sp_repldone (Transact-SQL)
sp_replflush (Transact-SQL)
sp_repltrans (Transact-SQL)
系统存储过程 (Transact-SQL)