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
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.
Resultset
Spaltenname | Datentyp | BESCHREIBUNG |
---|---|---|
article id |
int | Die ID des Artikels. |
partial_command |
bit | Gibt an, ob es sich bei diesem Befehl um einen Teilbefehl handelt. |
command |
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.
Die Replikation behandelt den ersten Client, der innerhalb einer bestimmten Datenbank als Protokollleser ausgeführt wird sp_replcmds
.
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.
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, innerhalb derselben Datenbank auszuführen sp_replcmds
, erhalten Fehler 18752, bis der erste Client die Verbindung trennt. Nachdem der erste Client getrennt wurde, kann ein anderer Client ausgeführt sp_replcmds
werden und wird zum neuen Protokollleser.
Eine Warnmeldungsnummer 18759 wird sowohl dem SQL Server-Fehlerprotokoll als auch dem Microsoft Windows-Anwendungsprotokoll hinzugefügt, wenn sp_replcmds
kein Textbefehl repliziert werden 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 ausgeführt werden sp_replcmds
.