sp_publication_validation (Transact-SQL)

Gilt für:yesSQL Server (alle unterstützten Versionen) YesAzure SQL Managed Instance

Initiiert eine Artikelüberprüfungsanforderung für jeden Artikel in der angegebenen Veröffentlichung. Diese gespeicherte Prozedur wird im Publisher in der Publikationsdatenbank ausgeführt.

Topic link iconTransact-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' Ist der Name der Publikation. Die Publikation ist sysname, ohne Standard.

[ @rowcount_only = ] 'rowcount_only' Ist, ob nur der Zeilencount für die Tabelle zurückgegeben werden soll. rowcount_only ist klein und kann eine der folgenden Werte sein.

Wert BESCHREIBUNG
0 Führen Sie eine kompatible Sql Server 7.0-Prüfsumme aus.

Hinweis: Wenn ein Artikel horizontal gefiltert wird, wird anstelle eines Prüfsummenvorgangs ein Rowcount-Vorgang ausgefü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.

Hinweis: Für SQL Server Version 7.0-Abonnenten wird nur eine Rowcount-Überprüfung ausgeführt.

[ @full_or_fast = ] 'full_or_fast' Wird die Methode verwendet, um den Zeilencount zu berechnen. full_or_fastist winzig und kann eine der folgenden Werte sein.

Wert BESCHREIBUNG
0 Führt eine vollständige Zählung mit COUNT(*) durch.
1 Führt die schnelle Anzahl von sysindexes.rows aus. Das Zählen von Zeilen in sys.sysindexes ist viel schneller als das Zählen von Zeilen in der tatsächlichen Tabelle. Da sys.sysindexes jedoch lazily aktualisiert wird, ist die Zeilenanzahl möglicherweise nicht 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 NULL ist und die gespeicherte Prozedur verwendet wird, um den Wert abzurufen, wird immer eine vollständige ANZAHL (*) verwendet.

[ @shutdown_agent = ] 'shutdown_agent' Ist, ob der Verteiler-Agent sofort nach Abschluss der Überprüfung heruntergefahren werden soll. shutdown_agent ist bit, mit einer Standardeinstellung von 0. Wenn 0, wird der Replikations-Agent nicht heruntergefahren. Wenn 1, wird der Replikations-Agent nach der Überprüfung des letzten Artikels heruntergefahren.

[ @publisher = ] 'publisher' Gibt einen nicht-SQL Server-Publisher an. publisher ist sysname, mit einer Standardeinstellung von NULL.

Hinweis

Publisher sollte nicht verwendet werden, wenn Sie die Überprüfung auf einem SQL Server-Publisher anfordern.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_publication_validation wird in der Transaktionsreplikation verwendet.

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

Wenn Ihre Anwendung Direktaktualisierungsabonnenten aufweist, kann sp_publication_validation möglicherweise fehlerhafte Fehler erkennen. sp_publication_validation berechnet zuerst die Zeilenanzahl oder Prüfsumme im Publisher und dann am 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 Systemadministrator-Fixed-Serverrolleoder die db_owner feste Datenbankrolle können sp_publication_validation ausführen.

Weitere Informationen

Überprüfen der Daten am Abonnenten
sp_article_validation (Transact-SQL)
sp_table_validation (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)