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 für die 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 vom Datentyp sysname und hat keinen Standardwert.

  • [@rowcount_only=] rowcount_only
    Gibt an, ob nur die Zeilenanzahl für die Tabelle zurückgegeben werden soll. rowcount_only ist 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, mit der die Zeilenanzahl berechnet wird. full_or_fast ist 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 in 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 (Standardwert)

    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 sofort nach dem Abschluss der Überprüfung beendet werden soll. shutdown_agent ist 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 vom Datentyp sysname und hat 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 über Abonnenten mit sofortigem Update verfügt, erkennt sp_publication_validation möglicherweise falsche Fehler. sp_publication_validation berechnet zuerst die Zeilenanzahl oder Prüfsumme beim Verleger und dann beim Abonnenten. Da der sofort aktualisierbare Trigger ein Update 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.

Siehe auch

Verweis

sp_article_validation (Transact-SQL)

sp_table_validation (Transact-SQL)

Gespeicherte Systemprozeduren (Transact-SQL)

Konzepte

Überprüfen der Daten am Abonnenten