sp_replshowcmds (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例

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

Transact-SQL 语法约定

语法

  
sp_replshowcmds [ @maxtrans = ] maxtrans  

参数

[ @maxtrans = ] maxtrans 要返回信息的事务数。 maxtransint,默认值为 1,它指定sp_replshowcmds返回信息副本 (replica)挂起的最大事务数。

结果集

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 命令。

注解

事务副本 (replica)中使用sp_replshowcmds

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

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

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

注意

应仅运行sp_replshowcmds来排查副本 (replica)问题。

权限

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

另请参阅

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