sp_replshowcmds (Transact-SQL)
適用対象: SQL Server Azure SQL Managed Instance
レプリケーション対象のマークが付けられたトランザクションのコマンドを判読可能な形式で返します。 sp_replshowcmds は、クライアント接続 (現在の接続を含む) がレプリケートされたトランザクションをログから読み取っていない場合にのみ実行できます。 このストアド プロシージャは、パブリッシャー側のパブリケーション データベースで実行されます。
構文
sp_replshowcmds [ @maxtrans = ] maxtrans
引数
[ @maxtrans = ] maxtrans
情報を返すトランザクションの数を指定します。 maxtrans は int で、既定値は 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)