sp_publication_validation (Transact-SQL)sp_publication_validation (Transact-SQL)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database (Managed Instance uniquement) nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Lance une demande de validation pour chaque article de la publication spécifiée.Initiates an article validation request for each article in the specified publication. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données de publication.This stored procedure is executed at the Publisher on the publication database.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

  
sp_publication_validation [ @publication = ] 'publication'  
    [ , [ @rowcount_only = ] type_of_check_requested ]  
    [ , [ @full_or_fast = ] full_or_fast ]  
    [ , [ @shutdown_agent = ] shutdown_agent ]  
    [ , [ @publisher = ] 'publisher' ]  

ArgumentsArguments

[ @publication=** ] ' publication'[@publication=**] 'publication'
Nom de la publication.Is the name of the publication. publication est de type sysname, sans valeur par défaut.publication is sysname, with no default.

[ @rowcount_only=** ] rowcount_only[@rowcount_only=**] rowcount_only
Indique s'il faut ou non retourner uniquement le nombre de lignes de la table.Is whether to return only the rowcount for the table. rowcount_only est de type smallint et peut prendre l’une des valeurs suivantes.rowcount_only is smallint and can be one of the following values.

ValueValue DescriptionDescription
00 Effectue une somme de contrôle SQL ServerSQL Server 7.0.Perform a SQL ServerSQL Server 7.0 compatible checksum.

Remarque : Lorsqu’un article est filtré horizontalement, une opération ROWCOUNT est exécutée à la place d’une opération de somme de contrôle.Note: When an article is horizontally filtered, a rowcount operation is performed instead of a checksum operation.
1 (par défaut)1 (default) Effectue un contrôle du nombre de lignes uniquement.Perform a rowcount check only.
22 Effectue un comptage du nombre de lignes et une somme de contrôle binaire.Perform a rowcount and binary checksum.

Remarque : Pour SQL ServerSQL Server les abonnés de la version 7,0, seule une validation du ROWCOUNT est effectuée.Note: For SQL ServerSQL Server version 7.0 Subscribers, only a rowcount validation is performed.

[ @full_or_fast=** ] full_or_fast[@full_or_fast=**] full_or_fast
Méthode utilisée pour calculer le nombre de lignes.Is the method used to calculate the rowcount. full_or_fast est de type tinyint et peut prendre l’une des valeurs suivantes.full_or_fast is tinyint and can be one of the following values.

ValueValue DescriptionDescription
00 Effectue un comptage total à l'aide de COUNT(*).Does full count using COUNT(*).
11 Effectue un comptage rapide à partir de sysindexes. Rows.Does fast count from sysindexes.rows. Le comptage des lignes dans sys. sysindexes est beaucoup plus rapide que le comptage des lignes dans la table réelle.Counting rows in sys.sysindexes is much faster than counting rows in the actual table. Toutefois, étant donné que sys. sysindexes est mis à jour tardivement, le ROWCOUNT peut ne pas être précis.However, because sys.sysindexes is lazily updated, the rowcount may not be accurate.
2 (par défaut)2 (default) Exécute un décompte rapide conditionnel en essayant d'abord la méthode rapide.Does conditional fast counting by first trying the fast method. Si la méthode rapide affiche des différences, revient à la méthode totale.If fast method shows differences, reverts to full method. Si expected_rowcount a la valeur NULL et la procédure stockée est en cours d’utilisation pour obtenir la valeur, un Count (*) complète est toujours utilisée.If expected_rowcount is NULL and the stored procedure is being used to get the value, a full COUNT(*) is always used.

[ @shutdown_agent = ] shutdown_agentIndique si le Agent de distribution doit s’arrêter immédiatement à la fin de la validation.[ @shutdown_agent = ] shutdown_agent Is whether the Distribution Agent should shut down immediately upon completion of the validation. shutdown_agent est de valeur de bit, avec 0comme valeur par défaut.shutdown_agent is bit, with a default of 0. Si la valeur est 0, l’agent de réplication ne s’arrête pas.If 0, the replication agent does not shut down. Si la taille est 1, l’agent de réplication s’arrête après la validation du dernier article.If 1, the replication agent shuts down after the last article is validated.

[ @publisher = ] 'publisher'Spécifie un serveur SQL ServerSQL Server de publication non-.[ @publisher = ] 'publisher' Specifies a non- SQL ServerSQL Server Publisher. Publisher est de type sysname, avec NULL comme valeur par défaut.publisher is sysname, with a default of NULL.

Notes

l' éditeur ne doit pas être utilisé lors de la SQL ServerSQL Server demande de validation sur un serveur de publication.publisher should not be used when requesting validation on a SQL ServerSQL Server Publisher.

Valeurs des codes de retourReturn Code Values

0 (succès) ou 1 (échec)0 (success) or 1 (failure)

NotesRemarks

sp_publication_validation est utilisé dans la réplication transactionnelle.sp_publication_validation is used in transactional replication.

sp_publication_validation peut être appelée à tout moment une fois que les articles associés à la publication ont été activés.sp_publication_validation can be called at any time after the articles associated with the publication have been activated. La procédure peut être exécutée manuellement (une fois) ou en tant que partie d'une tâche régulièrement planifiée qui valide les données.The procedure can be run manually (one time) or as part of a regularly scheduled job that validates the data.

Si votre application a des abonnés avec mise à jour immédiate, sp_publication_validation peut détecter les erreurs erronées.If your application has immediate-updating Subscribers, sp_publication_validation may detect spurious errors. sp_publication_validation calcule d’abord le RowCount ou la somme de contrôle sur le serveur de publication, puis sur l’abonné.sp_publication_validation first calculates the rowcount or checksum at the Publisher and then at the Subscriber. Étant donné que les déclencheurs à mise à jour immédiate peuvent propager une mise à jour de l'Abonné vers le serveur de publication une fois que le calcul du nombre de lignes ou de la somme de contrôle est terminé au niveau du serveur de publication, mais avant qu'il soit effectué au niveau de l'Abonné, les valeurs peuvent changer.Because the immediate-updating trigger could propagate an update from the Subscriber to the Publisher after the rowcount or checksum is completed at the Publisher, but before the rowcount or checksum is completed at the Subscriber, the values could change. Pour vous assurer que les valeurs pour l'Abonné et le serveur de publication ne changent pas au cours de la validation d'une publication, arrêtez le service Microsoft Distributed Transaction Coordinator (MS DTC) sur le serveur de publication durant cette validation.To ensure that the values at the Subscriber and Publisher do not change while validating a publication, stop the Microsoft Distributed Transaction Coordinator (MS DTC) service at the Publisher during validation.

AutorisationsPermissions

Seuls les membres du rôle serveur fixe sysadmin ou du rôle de base de données fixe db_owner peuvent exécuter sp_publication_validation.Only members of the sysadmin fixed server role or the db_owner fixed database role can execute sp_publication_validation.

Voir aussiSee Also

Valider des données sur l’abonné Validate Data at the Subscriber
sp_article_validation (Transact-SQL) sp_article_validation (Transact-SQL)
sp_table_validation (Transact-SQL) sp_table_validation (Transact-SQL)
Procédures stockées système (Transact-SQL)System Stored Procedures (Transact-SQL)