Freigeben über


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_replcmdswerden 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.