sp_repldone (Transact-SQL)

Aktualisiert den Datensatz, der die letzte verteilte Transaktion des Servers identifiziert. Diese gespeicherte Prozedur wird beim Verleger mit der Veröffentlichungsdatenbank ausgeführt.

VorsichtshinweisVorsicht

Wenn Sie sp_repldone manuell ausführen, können die Reihenfolge und die Konsistenz von abgeschlossenen Transaktionen ungültig werden. sp_repldone sollte nur unter Anleitung erfahrener Supportmitarbeiter für die Problembehandlung bei der Replikation verwendet werden.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_repldone [ @xactid= ] xactid 
        , [ @xact_seqno= ] xact_seqno 
    [ , [ @numtrans= ] numtrans ] 
    [ , [ @time= ] time 
    [ , [ @reset= ] reset ]

Argumente

  • [ @xactid=] xactid
    Die Protokollfolgenummer (Log Sequence Number oder LSN) des ersten Datensatzes für die letzte verteilte Transaktion des Servers. xactid ist vom Datentyp binary(10) und hat keinen Standardwert.

  • [ @xact_seqno=] xact_seqno
    Die LSN des letzten Datensatzes für die letzte verteilte Transaktion des Servers. xact_seqno ist vom Datentyp binary(10) und hat keinen Standardwert.

  • [ @numtrans=] numtrans
    Die Anzahl der verteilten Transaktionen. numtrans ist vom Datentyp int und hat keinen Standardwert.

  • [ @time=] time
    Wenn dieses Argument festgelegt wurde, gibt es die Zeit in Millisekunden an, die für das Verteilen des letzten Transaktionsbatches benötigt wurde. time ist vom Datentyp int und hat keinen Standardwert.

  • [ @reset=] reset
    Der Status für das Zurücksetzen. reset ist vom Datentyp int und hat keinen Standardwert. Mit 1 werden alle replizierten Transaktionen im Protokoll als verteilt gekennzeichnet. Mit 0 wird das Transaktionsprotokoll auf die erste replizierte Transaktion zurückgesetzt; es werden keine replizierten Transaktionen als verteilt gekennzeichnet. reset ist nur zulässig, wenn sowohl xactid als auch xact_seqno auf NULL festgelegt sind.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_repldone wird für die Transaktionsreplikation verwendet.

sp_repldone wird vom Protokollleserprozess verwendet, um nachzuverfolgen, welche Transaktionen verteilt wurden.

Mit sp_repldone können Sie dem Server manuell mitteilen, dass eine Transaktion repliziert (an den Verteiler gesendet) wurde. Außerdem haben Sie damit die Möglichkeit, anstelle der entsprechend markierten Transaktion eine andere Transaktion für die nächste Replikation festzulegen. Sie können sich in der Liste mit den replizierten Transaktionen vorwärts oder rückwärts bewegen (alle Transaktionen vor dieser Transaktion und diese selbst werden als verteilt gekennzeichnet).

Die erforderlichen Parameter xactid und xact_seqno können mithilfe von sp_repltrans oder sp_replcmds abgerufen werden.

Berechtigungen

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

Beispiele

Wenn xactid und xact_seqno gleich NULL sind und reset gleich 1 ist, werden alle replizierten Transaktionen im Protokoll als verteilt gekennzeichnet. Dies bietet sich an, wenn replizierte Transaktionen im Protokoll nicht mehr gültig sind und das Protokoll abgeschnitten werden soll, wie im folgenden Beispiel:

EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0,     @time = 0, @reset = 1
VorsichtshinweisVorsicht

Diese Prozedur kann in Notsituationen verwendet werden, damit das Transaktionsprotokoll abgeschnitten werden kann, wenn Transaktionen mit ausstehender Replikation vorhanden sind. Diese Prozedur bewirkt, dass Microsoft SQL Server 2000 die Datenbank erst repliziert, wenn die Veröffentlichung der Datenbank aufgehoben und sie anschließend erneut veröffentlicht wurde.