sp_replshowcmds (Transact-SQL)

レプリケーションのマークが付けられたトランザクション用のコマンドを読み取り可能な形式で返します。sp_replshowcmds は、現在の接続を含めてクライアント接続がレプリケートされたトランザクションをログから読んでいない場合にだけ実行できます。このストアド プロシージャは、パブリッシャ側でパブリケーション データベースについて実行されます。

トピック リンク アイコンTransact-SQL 構文表記規則

構文


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_replshowcmdssp_replcmds を実行するクライアントは、エラー 18752 を受け取ります。

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

注意注意

sp_replshowcmds は、レプリケーションでの問題点のトラブルシューティングのためだけに使用するようにしてください。

権限

sp_replshowcmds を実行できるのは、固定サーバー ロール sysadmin または固定データベース ロール db_owner のメンバだけです。