Freigeben über


sp_publication_validation (Transact-SQL)

Gilt für: SQL Server Azure 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 = ] N'publication'
    [ , [ @rowcount_only = ] rowcount_only ]
    [ , [ @full_or_fast = ] full_or_fast ]
    [ , [ @shutdown_agent = ] shutdown_agent ]
    [ , [ @publisher = ] N'publisher' ]
[ ; ]

Argumente

[ @publication = ] N'Publikation'

Der Name der Veröffentlichung. @publication ist "sysname" ohne Standard.

[ @rowcount_only = ] rowcount_only

Gibt an, ob nur das Zeilenanzahl für die Tabelle zurückgegeben werden soll. @rowcount_only ist klein und kann einen der folgenden Werte aufweisen.

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.

[ @full_or_fast = ] full_or_fast

Die Methode, die zum Berechnen des Zeilenanzahls verwendet wird. @full_or_fast ist winzig und kann einer der folgenden Werte sein.

Wert Beschreibung
0 Verwendet die vollständige Anzahl mithilfe von COUNT(*).
1 Schnelle Anzahl von sysindexes.rows. Das Zählen von Zeilen in sys.sysindexes ist 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 korrekt.
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. NULL Wenn expected_rowcount und die gespeicherte Prozedur zum Abrufen des Werts verwendet wird, wird immer ein vollständiger COUNT(*) Wert 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 einem Standardwert von 0.

  • Wenn 0der Replikations-Agent nicht heruntergefahren wird.
  • Wenn 1der Replikations-Agent nach der Überprüfung des letzten Artikels heruntergefahren wird.

[ @publisher = ] N'publisher'

Gibt einen Nicht-SQL Server-Herausgeber an. @publisher ist "sysname" mit der Standardeinstellung "NULL.

@publisher sollte nicht verwendet werden, wenn eine Überprüfung für einen SQL Server-Herausgeber angefordert wird.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

sp_publication_validation wird in der Transaktionsreplikation verwendet.

sp_publication_validation kann 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, sp_publication_validation können fehlerhafte Fehler erkannt werden. sp_publication_validation berechnet zuerst das Zeilenanzahl- oder Prüfsummen 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 sich die Werte beim Abonnenten und Publisher während der Überprüfung einer Publikation nicht ändern, beenden Sie den Microsoft Distributed Transaction Coordinator (MS DTC)-Dienst beim Publisher während der Überprüfung.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder die db_owner feste Datenbankrolle können ausgeführt werden sp_publication_validation.