sp_replcmds (Transact-SQL)
Gilt für: SQL Server Azure 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)