sp_setsubscriptionxactseqno (Transact-SQL)

Gibt bei der Problembehandlung die Protokollfolgenummer (LSN, Log Sequence Number) der nächsten vom Verteilungs-Agent auf dem Abonnenten anzuwendenden Transaktion an. Der Agent hat dadurch die Möglichkeit, eine Transaktion, die einen Fehler erzeugt hat, auszulassen. Diese gespeicherte Prozedur wird auf dem Abonnenten für die Abonnementdatenbank ausgeführt. Wird nicht für Nicht-SQL Server-Abonnenten unterstützt.

VorsichtshinweisVorsicht

Eine falsche Verwendung dieser gespeicherten Prozedur oder die Angabe eines falschen LSN-Werts kann den Verteilungs-Agent dazu veranlassen, bereits auf den Abonnenten angewendete Änderungen rückgängig zu machen oder alle verbleibenden Änderungen zu überspringen.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_setsubscriptionxactseqno [ @publisher = ] 'publisher'
        , [ @publisher_db = ] 'publisher_db'
        , [ @publication = ] 'publication'
        , [ @xact_seqno = ] xact_seqno 

Argumente

  • [ @publisher= ] 'publisher'
    Der Name des Verlegers. publisher ist vom Datentyp sysname und hat keinen Standardwert.

  • [ @publisher_db= ] 'publisher_db'
    Der Name der Veröffentlichungsdatenbank. publisher_db ist vom Datentyp sysname und hat keinen Standardwert. Für einen Verleger, auf dem SQL Server nicht ausgeführt wird, ist publisher_db der Name der Verteilungsdatenbank.

  • [ @publication= ] 'publication'
    Der Name der Veröffentlichung. publication ist vom Datentyp sysname und hat keinen Standardwert. Wenn der Verteilungs-Agent von mehreren Veröffentlichungen gemeinsam verwendet wird, müssen Sie für publication den Wert ALL angeben.

  • [ @xact_seqno= ] xact_seqno
    xact_seqno der Transaktion, die einen Fehler beim Abonnenten auslöst. xact_seqno ist vom Datentyp varbinary (16) und besitzt keinen Standardwert.

Resultset

Spaltenname

Datentyp

Beschreibung

ORIGINAL XACT_SEQNO

varbinary(16)

Die ursprüngliche LSN der nächsten Transaktion, die auf dem Abonnenten angewendet werden soll.

UPDATED XACT_SEQNO

varbinary(16)

Die aktualisierte LSN der nächsten Transaktion, die auf dem Abonnenten angewendet werden soll.

SUBSCRIPTION STREAM COUNT

int

Die Anzahl der bei der letzten Synchronisierung verwendeten Abonnementdatenströme.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_setsubscriptionxactseqno wird in der Transaktionsreplikation verwendet.

sp_setsubscriptionxactseqno kann nicht in einer Peer-zu-Peer-Transaktionsreplikationstechnologie verwendet werden.

Mithilfe von sp_setsubscriptionxactseqno kann eine bestimmte Transaktion, die beim Anwenden auf dem Abonnenten einen Fehler verursacht, ausgelassen werden. Rufen Sie bei einem Fehler und nach Beenden des Verteilungs-Agents sp_helpsubscriptionerrors (Transact-SQL) auf dem Verteiler auf, um den xact_seqno-Wert der Transaktion abzurufen, die für den Fehler verantwortlich ist. Rufen Sie dann sp_setsubscriptionxactseqno auf, und übergeben Sie diesen Wert für xact_seqno. Dadurch wird sichergestellt, dass nur die Befehle nach dieser LSN verarbeitet werden.

Geben Sie den Wert 0 für xact_seqno an, um alle ausstehenden Befehle in der Verteilungsdatenbank für den Abonnenten bereitzustellen.

sp_setsubscriptionxactseqno erzeugt möglicherweise einen Fehler, wenn der Verteilungs-Agent Datenströme für mehrere Abonnements verwendet.

Wenn dieser Fehler auftritt, müssen Sie den Verteilungs-Agent mit einem Datenstrom für ein einzelnes Abonnement ausführen. Weitere Informationen finden Sie unter Replikationsverteilungs-Agent.

Berechtigungen

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