次の方法で共有


sp_replshowcmds (Transact-SQL)

適用対象: SQL Server Azure 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 コマンドの種類。
command 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を実行できます。