Freigeben über


sp_publication_validation (Transact-SQL)

Initiiert eine Artikelüberprüfungsanforderung für jeden Artikel in der angegebenen Veröffentlichung. Diese gespeicherte Prozedur wird auf dem Verleger mit der Veröffentlichungsdatenbank ausgeführt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_publication_validation [ @publication = ] 'publication'
    [ , [ @rowcount_only = ] type_of_check_requested ]
    [ , [ @full_or_fast = ] full_or_fast ]
    [ , [ @shutdown_agent = ] shutdown_agent ]
    [ , [ @publisher = ] 'publisher' ]

Argumente

  • [@publication=] **'**publication'
    Der Name der Veröffentlichung. publication ist ein Wert vom Datentyp sysname und weist keinen Standardwert auf.

  • [@rowcount_only=] rowcount_only
    Gibt an, ob nur die Zeilenanzahl der Tabelle zurückgegeben werden soll. rowcount_only ist ein Wert vom Datentyp smallint. Die folgenden Werte sind möglich.

    Wert

    Beschreibung

    0

    Führt eine mit SQL Server 7.0 kompatible Prüfsummenberechnung durch.

    HinweisHinweis
    Wird ein Artikel horizontal gefiltert, wird eine Überprüfung der Zeilenanzahl anstelle einer Prüfsummenberechnung durchgeführt.

    1 (Standard)

    Führt nur eine Überprüfung der Zeilenanzahl aus.

    2

    Führt eine Überprüfung der Zeilenanzahl und der binären Prüfsumme aus.

    HinweisHinweis
    Für Abonnenten von SQL Server, Version 7.0, wird nur eine Überprüfung der Zeilenanzahl ausgeführt.
  • [@full_or_fast=] full_or_fast
    Die Methode, die zum Berechnen der Zeilenanzahl verwendet wird. full_or_fast ist ein Wert vom Datentyp tinyint. Die folgenden Werte sind möglich.

    Wert

    Beschreibung

    0

    Führt eine vollständige Zählung mit COUNT(*) durch.

    1

    Führt eine schnelle Zählung mit sysindexes.rows aus. Die Zeilenzählung in sys.sysindexes erfolgt erheblich schneller als das Zählen der Zeilen in der eigentlichen Tabelle. Da sys.sysindexes jedoch nur verzögert aktualisiert wird, ist die Zeilenanzahl möglicherweise nicht ganz genau.

    2 (Standard)

    Führt eine bedingte schnelle Zählung durch, indem zunächst versucht wird, die schnelle Methode anzuwenden. Ergeben sich mit der schnellen Methode Unterschiede, wird die Methode für die vollständige Zählung verwendet. Wenn expected_rowcount den Wert NULL besitzt und die gespeicherte Prozedur verwendet wird, um den Wert abzurufen, wird stets mit COUNT(*) eine vollständige Zählung ausgeführt.

  • [ @shutdown_agent=] shutdown_agent
    Gibt an, ob der Verteilungs-Agent unmittelbar nach Abschluss der Überprüfung heruntergefahren werden soll. shutdown_agent ist ein Wert vom Datentyp bit. Der Standardwert ist 0. Mit 0 wird der Replikations-Agent nicht beendet. Mit 1 wird der Replikations-Agent nach der Überprüfung des letzten Artikels beendet.

  • [ @publisher = ] 'publisher'
    Gibt einen Nicht-SQL Server-Verleger an. publisher ist ein Wert vom Datentyp sysname und besitzt den Standardwert NULL.

    HinweisHinweis

    publisher sollte nicht verwendet werden, wenn die Überprüfung auf einem SQL Server-Verleger angefordert wird.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_publication_validation wird bei der Transaktionsreplikation verwendet.

sp_publication_validation kann jederzeit aufgerufen werden, nachdem die Artikel für die Veröffentlichung aktiviert wurden. Die Prozedur kann (einmalig) manuell ausgeführt werden oder als Bestandteil eines regelmäßig geplanten Auftrags, der die Daten überprüft.

Wenn die Anwendung sofort aktualisierbare Abonnenten enthält, erkennt sp_publication_validation möglicherweise vermeintliche Fehler. sp_publication_validation berechnet zunächst die Zeilenanzahl oder Prüfsumme auf dem Verleger und dann auf dem Abonnenten. Da der sofort aktualisierbare Trigger eine Aktualisierung vom Abonnenten zum Verleger möglicherweise weitergibt, nachdem die Zeilenanzahl oder Prüfsumme am Verleger vollständig berechnet wurde, aber bevor die Zeilenanzahl oder Prüfsumme am Abonnenten vollständig berechnet ist, können sich die Werte möglicherweise ändern. Um sicherzustellen, dass die Werte auf dem Abonnenten und auf dem Verleger sich nicht ändern, während eine Veröffentlichung überprüft wird, müssen Sie den MS DTC-Dienst (Microsoft Distributed Transaction Coordinator) auf dem Verleger für die Zeit der Überprüfung beenden.

Berechtigungen

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