sp_replcmds (Transact-sql)sp_replcmds (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance

レプリケーション用にマークされたトランザクションのコマンドを返します。Returns the commands for transactions marked for replication. このストアドプロシージャは、パブリッシャー側でパブリケーションデータベースに対して実行されます。This stored procedure is executed at the Publisher on the publication database.


Sp_replcmdsプロシージャは、レプリケーションに関する問題のトラブルシューティングを行う場合にのみ実行してください。The sp_replcmds procedure should be run only to troubleshoot problems with replication.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions


sp_replcmds [ @maxtrans = ] maxtrans  


[ @maxtrans = ] maxtrans情報を返すトランザクションの数を指定します。[ @maxtrans = ] maxtrans Is the number of transactions to return information about. maxtransint,、既定値は1,、ディストリビューションを待機している次のトランザクションを指定します。maxtrans is int, with a default of 1, which specifies the next transaction waiting for distribution.

結果セットResult Sets

列名Column name データ型Data type 説明Description
アーティクル idarticle id intint アーティクルの ID です。The ID of the article.
partial_commandpartial_command bitbit これが部分コマンドであるかどうかを示します。Indicates whether this is a partial command or not.
commandcommand varbinary (1024)varbinary(1024) コマンドの値。The command value.
xactidxactid binary(10)binary(10) トランザクション ID。Transaction ID.
xact_seqnoxact_seqno varbinary(16)varbinary(16) トランザクションのシーケンス番号。The transaction sequence number.
publication_idpublication_id intint パブリケーションの ID です。The ID of the publication.
command_idcommand_id intint MSrepl_commands内のコマンドの ID。ID of the command in MSrepl_commands.
command_typecommand_type intint コマンドの種類。Type of command.
originator_srvnameoriginator_srvname sysnamesysname トランザクションが発生したサーバー。Server where the transaction originated.
originator_dboriginator_db sysnamesysname トランザクションが発生したデータベース。Database where the transaction originated.
pkHashpkHash intint 内部使用のみです。Internal use only.
originator_publication_idoriginator_publication_id intint トランザクションが発生したパブリケーションの ID。ID of the publication where the transaction originated.
originator_db_versionoriginator_db_version intint トランザクションが発生したデータベースのバージョン。Version of the database where the transaction originated.
originator_lsnoriginator_lsn varbinary(16)varbinary(16) 元のパブリケーションのコマンドのログシーケンス番号 (LSN) を識別します。Identifies the log sequence number (LSN) for the command in the originating publication.


sp_replcmdsは、トランザクションレプリケーションのログリーダープロセスによって使用されます。sp_replcmds is used by the log reader process in transactional replication.

レプリケーションでは、指定されたデータベース内のsp_replcmdsを実行する最初のクライアントがログリーダーとして扱われます。Replication treats the first client that runs sp_replcmds within a given database as the log reader.

このプロシージャでは、所有者によって修飾されたテーブルのコマンドを生成したり、テーブル名を修飾したりすることはできません (既定)。This procedure can generate commands for owner-qualified tables or not qualify the table name (the default). 修飾されたテーブル名を追加すると、あるデータベースの特定のユーザーが所有するテーブルから、別のデータベースの同じユーザーが所有するテーブルにデータをレプリケートできます。Adding qualified table names allows replication of data from tables owned by a specific user in one database to tables owned by the same user in another database.


レプリケーション元データベースのテーブル名は、所有者名により限定されるので、レプリケーション先データベースのテーブルの所有者も同じ所有者名である必要があります。Because the table name in the source database is qualified by the owner name, the owner of the table in the target database must be the same owner name.

クライアントが同じデータベース内でsp_replcmdsを実行しようとすると、最初のクライアントが切断されるまで、エラー18752が発生します。Clients who attempt to run sp_replcmds within the same database receive error 18752 until the first client disconnects. 最初のクライアントが切断されると、別のクライアントがsp_replcmdsを実行し、新しいログリーダーになります。After the first client disconnects, another client can run sp_replcmds, and becomes the new log reader.

MicrosoftMicrosoft SQL ServerSQL Server MicrosoftMicrosoft テキストポインターが同じトランザクションで取得されなかったためにsp_replcmdsがテキストコマンドをレプリケートできない場合、エラーログと Windows アプリケーションログの両方に警告メッセージ番号18759が追加されます。A warning message number 18759 is added to both the MicrosoftMicrosoft SQL ServerSQL Server error log and the MicrosoftMicrosoft Windows application log if sp_replcmds is unable to replicate a text command because the text pointer was not retrieved in the same transaction.


Sp_replcmdsを実行できるのは、固定サーバーロールsysadminまたは固定データベースロールdb_ownerのメンバーだけです。Only members of the sysadmin fixed server role or the db_owner fixed database role can execute sp_replcmds.

関連項目See Also

エラーメッセージ Error Messages
sp_repldone (Transact-sql) sp_repldone (Transact-SQL)
sp_replflush (Transact-sql) sp_replflush (Transact-SQL)
sp_repltrans (Transact-sql) sp_repltrans (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)System Stored Procedures (Transact-SQL)