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.
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.
Hinweis 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.
Hinweis 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.Hinweis 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)