Freigeben über


sp_setsubscriptionxactseqno (Transact-SQL)

Gilt für: SQL Server

Wird bei der Problembehandlung verwendet, um die letzte zugestellte Transaktion mithilfe der Protokollsequenznummer (Log Sequence Number, LSN) anzugeben, sodass der Verteilungs-Agent mit der Bereitstellung bei der nächsten Transaktion beginnen kann. Nach dem Neustart gibt die Verteilungs-Agent Transaktionen zurück, die größer als dieses Wasserzeichen (LSN) aus dem Verteilungsdatenbankcache (msrepl_commands). Diese gespeicherte Prozedur wird beim Abonnenten in der Abonnementdatenbank ausgeführt. Wird nicht für Nicht-SQL Server-Abonnenten unterstützt.

Achtung

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

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @publisher = ] N'publisher'

Der Name des Herausgebers. @publisher ist "sysname" ohne Standard.

[ @publisher_db = ] N'publisher_db'

Der Name der Publikationsdatenbank. @publisher_db ist "sysname" ohne Standard. Bei einem Nicht-SQL Server-Herausgeber ist @publisher_db der Name der Verteilungsdatenbank.

[ @publication = ] N'Publikation'

Der Name der Veröffentlichung. @publication ist "sysname" ohne Standard. Wenn mehr als eine Publikation die Verteilungs-Agent freigibt, müssen Sie einen Wert ALL für @publication angeben.

[ @xact_seqno = ] xact_seqno

Die LSN der nächsten Transaktion beim Distributor, die beim Abonnenten angewendet werden soll. @xact_seqno ist varbinary(16) ohne Standard.

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 (erfolgreich) oder 1 Fehler.

Hinweise

sp_setsubscriptionxactseqno wird in der Transaktionsreplikation verwendet.

sp_setsubscriptionxactseqno kann nicht in einer Peer-to-Peer-Replikationstopologie verwendet werden.

sp_setsubscriptionxactseqno kann verwendet werden, um eine bestimmte Transaktion zu überspringen, die einen Fehler verursacht, wenn sie beim Abonnenten angewendet wird. Wenn ein Fehler auftritt und die Verteilungs-Agent beendet wurde, rufen Sie sp_helpsubscriptionerrors beim Distributor auf, um den xact_seqno Wert der fehlgeschlagenen Transaktion abzurufen, und rufen Sie sp_setsubscriptionxactseqnodann diesen Wert für @xact_seqno auf. Dadurch wird sichergestellt, dass nur die Befehle nach der Verarbeitung dieses LSNs ausgeführt werden.

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

sp_setsubscriptionxactseqnoschlägt möglicherweise fehl, wenn die Verteilungs-Agent Mehrere Abonnementdatenströme 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 Replication Distribution Agent.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder db_owner feste Datenbankrolle können ausgeführt werden sp_setsubscriptionxactseqno.