Freigeben über


sp_replcmds (Transact-SQL)

Mit dieser Prozedur werden die Transaktionsbefehle zurückgegeben, die für die Replikation gekennzeichnet sind. Diese gespeicherte Prozedur wird beim Verleger mit der Veröffentlichungsdatenbank ausgeführt.

Wichtiger HinweisWichtig

sp_replcmds sollte nur zur Problembehandlung bei der Replikation ausgeführt werden.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_replcmds [ @maxtrans = ] maxtrans

Argumente

  • [ @maxtrans=] maxtrans
    Die Anzahl von Transaktionen, für die Informationen zurückgegeben werden sollen. maxtrans ist vom Datentyp int. Der Standardwert ist 1, womit die nächste Transaktion angegeben wird, die auf die Verteilung wartet.

Resultsets

Spaltenname

Datentyp

Beschreibung

article id

int

Die ID des Artikels

partial_command

bit

Zeigt an, ob dies ein Teilbefehl ist oder nicht

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 interne 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 bei der Transaktionsreplikation verwendet.

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

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.

HinweisHinweis

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 für dieselbe Datenbank auszuführen, erhalten so lange die Fehlermeldung 18752, bis der erste Client die Verbindung trennt. Nachdem die Verbindung getrennt wurde, kann ein anderer Client sp_replcmds ausführen und wird dann seinerseits zum neuen Protokollleser.

Die Fehlermeldungsnummer 18759 wird sowohl dem Microsoft SQL Server-Fehlerprotokoll als auch dem Microsoft Windows-Anwendungsprotokoll hinzugefügt, wenn sp_replcmds einen Textbefehl nicht replizieren kann, da der Textzeiger nicht in der gleichen Transaktion abgerufen wurde.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner können sp_replcmds ausführen.