sp_replcmds (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Mit dieser Prozedur werden die Transaktionsbefehle zurückgegeben, die für die Replikation gekennzeichnet sind. Diese gespeicherte Prozedur wird im Publisher in der Publikationsdatenbank ausgeführt.

Wichtig

Die sp_replcmds-Prozedur sollte nur ausgeführt werden, um Probleme mit der Replikation zu beheben.

Transact-SQL-Syntaxkonventionen

Syntax

  
sp_replcmds [ @maxtrans = ] maxtrans  

Argumente

[ @maxtrans = ] maxtrans Ist die Anzahl der Transaktionen, über die Informationen zurückgegeben werden sollen. maxtrans ist int, mit einem Standardwert von 1, der die nächste Transaktion angibt, die auf die Verteilung wartet.

Resultsets

Spaltenname Datentyp Beschreibung
Artikel-ID int Die ID des Artikels.
partial_command bit Gibt an, ob es sich um einen Teilbefehl handelt.
Befehl varbinary(1024) Der Befehlswert.
xactid binary(10) Transaktions-ID
xact_seqno varbinary(16) Die Transaktionssequenznummer.
publication_id int Die ID der Veröffentlichung.
command_id int ID des Befehls in MSrepl_commands.
command_type int Befehlstyp.
originator_srvname sysname Server, von dem die Transaktion stammt
originator_db sysname Datenbank, von der die Transaktion stammt
pkHash int Nur zur internen Verwendung.
originator_publication_id int ID der Veröffentlichung, von der die Transaktion stammt
originator_db_version int Version der Datenbank, von der die Transaktion stammt
originator_lsn varbinary(16) Identifiziert die Protokollfolgenummer (LSN, Log Sequence Number) für den Befehl in der ursprünglichen Veröffentlichung

Hinweise

sp_replcmds wird vom Protokollleseprozess in der Transaktionsreplikation verwendet.

Replikation behandelt den ersten Client, der sp_replcmds in einer bestimmten Datenbank als Protokollleser ausführt.

Diese Prozedur kann Befehle für mit dem Besitzer qualifizierte Tabellen erstellen oder den Tabellennamen nicht kennzeichnen (Standard). Das Hinzufügen von qualifizierten Tabellennamen ermöglicht die Datenreplikation von Tabellen mit einem bestimmten Besitzer innerhalb einer Datenbank zu Tabellen mit demselben Besitzer in einer anderen Datenbank.

Hinweis

Da der Tabellenname in der Quelldatenbank durch den Besitzernamen qualifiziert wird, muss es sich bei dem Tabellenbesitzer in der Zieldatenbank um den gleichen Besitzernamen handeln.

Clients, die versuchen, sp_replcmds innerhalb derselben Datenbank auszuführen, erhalten Fehler 18752, bis der erste Client die Verbindung trennt. Nachdem der erste Client die Verbindung getrennt hat, kann ein anderer Client sp_replcmds ausführen und wird zum neuen Protokollleser.

Eine Warnmeldungsnummer 18759 wird sowohl zum Microsoft SQL Server-Fehlerprotokoll als auch zum Microsoft Windows-Anwendungsprotokoll hinzugefügt, wenn sp_replcmds keinen Textbefehl replizieren kann, da der Textzeiger nicht in derselben Transaktion abgerufen wurde.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder die db_owner feste Datenbankrolle können sp_replcmds ausgeführt werden.

Weitere Informationen

Fehlermeldungen
sp_repldone (Transact-SQL)
sp_replflush (Transact-SQL)
sp_repltrans (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)