sp_replshowcmds (Transact-SQL)
レプリケーションのマークが付けられたトランザクション用のコマンドを読み取り可能な形式で返します。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 を正しく実行できます。
注意 |
---|
sp_replshowcmds は、レプリケーションでの問題点のトラブルシューティングのためだけに使用するようにしてください。 |
権限
sp_replshowcmds を実行できるのは、固定サーバー ロール sysadmin または固定データベース ロール db_owner のメンバだけです。