sp_publication_validation (Transact-SQL)

S’applique à :yesSQL Server (toutes les versions prises en charge) YesAzure SQL Managed Instance

Lance une demande de validation pour chaque article de la publication spécifiée. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données de publication.

Topic link iconConventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @publication = ] 'publication' Nom de la composition. la publication est sysname, sans valeur par défaut.

[ @rowcount_only = ] 'rowcount_only' Indique s’il faut retourner uniquement le nombre de lignes de la table. rowcount_only est smallint et peut être l’une des valeurs suivantes.

Valeur Description
0 Effectuez une somme de contrôle compatible SQL Server 7.0.

Remarque : lorsqu’un article est filtré horizontalement, une opération de nombre de lignes est effectuée au lieu d’une opération de somme de contrôle.
1 (par défaut) Effectue un contrôle du nombre de lignes uniquement.
2 Effectue un comptage du nombre de lignes et une somme de contrôle binaire.

Remarque : Pour les abonnés SQL Server version 7.0, seule une validation de nombre de lignes est effectuée.

[ @full_or_fast = ] 'full_or_fast' Méthode utilisée pour calculer le nombre de lignes. full_or_fast est tinyint et peut être l’une des valeurs suivantes.

Valeur Description
0 Effectue un comptage total à l'aide de COUNT(*).
1 Effectue un nombre rapide à partir de sysindexes.rows. Le comptage de lignes dans sys.sysindexes est beaucoup plus rapide que le comptage de lignes dans la table réelle. Toutefois, étant donné que sys.sysindexes est mis à jour de manière différée, le nombre de lignes peut ne pas être exact.
2 (par défaut) Exécute un décompte rapide conditionnel en essayant d'abord la méthode rapide. Si la méthode rapide affiche des différences, revient à la méthode totale. Si expected_rowcount a la valeur NULL et que la procédure stockée est utilisée pour obtenir la valeur, une valeur COUNT(*) complète est toujours utilisée.

[ @shutdown_agent = ] 'shutdown_agent' Indique si l’Agent de distribution doit s’arrêter immédiatement à la fin de la validation. shutdown_agent est bit, avec une valeur par défaut de 0. Si la valeur est 0, l’agent de réplication ne s’arrête pas. Si la valeur est 1, l’agent de réplication s’arrête après la validation du dernier article.

[ @publisher = ] 'publisher' Spécifie un serveur de publication non SQL Server. publisher est sysname, avec une valeur par défaut null.

Notes

l’éditeur ne doit pas être utilisé lors de la demande de validation sur un serveur de publication SQL Server.

Codet de retour

0 (réussite) ou 1 (échec)

Remarques

sp_publication_validation est utilisé dans la réplication transactionnelle.

sp_publication_validation peut être appelée à tout moment après l’activation des articles associés à la publication. 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.

Si votre application a des Abonnés à mise à jour immédiate, sp_publication_validation peut détecter des erreurs erronées. sp_publication_validation calcule d’abord le nombre de lignes ou la somme de contrôle sur le serveur de publication, puis sur l’Abonné. É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. 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.

Autorisations

Seuls les membres du rôle serveur fixe sysadmin ou le rôle de base de données fixe db_owner peuvent exécuter sp_publication_validation.

Voir aussi

Valider des données sur l’abonné
sp_article_validation (Transact-SQL)
sp_table_validation (Transact-SQL)
Procédures stockées système (Transact-SQL)