sp_publication_validation (Transact-SQL)

Gilt für:SQL ServerAzure 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.

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

[ @rowcount_only = ] 'rowcount_only' Gibt an, ob nur die Zeilenanzahl für die Tabelle zurückgegeben werden soll. rowcount_only ist klein und kann einer der folgenden Werte sein.

Wert Beschreibung
0 Führen Sie eine SQL Server 7.0-kompatible Prüfsumme aus.

Hinweis: Wenn ein Artikel horizontal gefiltert wird, wird anstelle eines Prüfsummenvorgangs ein Zeilenanzahlvorgang 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 Zeilenanzahlüberprüfung ausgeführt.

[ @full_or_fast = ] 'full_or_fast' Wird die Methode zum Berechnen des Zeilenanzahls verwendet. full_or_fast ist winzig und kann einer der folgenden Werte sein.

Wert Beschreibung
0 Führt eine vollständige Zählung mit COUNT(*) durch.
1 Schnelle Anzahl von sysindexes.rows. 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 der Zeilenzähler möglicherweise nicht korrekt.
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 zum Abrufen des Werts verwendet wird, wird immer eine vollständige ANZAHL(*) verwendet.

[ @shutdown_agent = ] 'shutdown_agent'Gibt an, ob die Verteilungs-Agent nach Abschluss der Überprüfung sofort heruntergefahren werden soll. shutdown_agent ist Bit mit der Standardeinstellung 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-Herausgeber an. Publisher ist "sysname" mit dem Standardwert NULL.

Hinweis

Publisher sollte nicht verwendet werden, wenn eine Überprüfung für einen SQL Server Publisher angefordert wird.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_publication_validation wird in der Transaktionsreplikation verwendet.

sp_publication_validation können jederzeit aufgerufen werden, nachdem die mit der Publikation verknüpften Artikel 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 Abonnenten sofort aktualisiert, kann sp_publication_validation fehlerhafte Fehler erkennen. sp_publication_validation berechnet zuerst das Zeilenanzahl- oder Prüfsummen im Publisher 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 die db_owner feste Datenbankrolle können sp_publication_validation ausgeführt werden.

Weitere Informationen

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