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 | コマンドの種類。 |
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
を実行できます。