sp_replshowcmds (Transact-SQL)

適用対象: SQL ServerAzure SQL Managed Instance

レプリケーション対象のマークが付けられたトランザクションのコマンドを判読可能な形式で返します。 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 コマンドの種類。
コマンド nvarchar(1024) Transact-SQL コマンド。

解説

sp_replshowcmdsはトランザクション レプリケーションで使用されます。

sp_replshowcmdsを使用すると、現在分散されていないトランザクションを表示できます (これらのトランザクションはメインディストリビューターに送信されていないトランザクション ログに記録されます)。

同じデータベース内でsp_replshowcmdsおよびsp_replcmdsを実行するクライアントは、エラー 18752 を受け取ります。

このエラーを回避するには、最初のクライアントを切断するか、sp_replflushを実行してログ リーダーとしてのクライアントのロールを解放する必要があります。 すべてのクライアントがログ リーダーから切断された後、 sp_replshowcmds を正常に実行できます。

Note

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)