Partager via


sp_publication_validation (Transact-SQL)

S’applique à : SQL Server Azure 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.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @publication = ] N’publication'

Nom de la publication. @publication est sysname, sans valeur par défaut.

[ @rowcount_only = ] rowcount_only

Spécifie s’il faut retourner uniquement le nombre de lignes pour 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 (valeur 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.

[ @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 Fait le nombre complet à l’aide COUNT(*)de .
1 Fait le nombre rapide de sysindexes.rows. Le comptage de lignes dans sys.sysindexes est 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 (valeur 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 c’est NULL le cas et si la procédure stockée est utilisée pour obtenir la valeur, une valeur complète COUNT(*) est toujours utilisée.

[ @shutdown_agent = ] shutdown_agent

Spécifie si le Agent de distribution doit s’arrêter immédiatement à la fin de la validation. @shutdown_agent est bit, avec la valeur par défaut 0.

  • Si 0, l’agent de réplication ne s’arrête pas.
  • Si 1, l’agent de réplication s’arrête après la validation du dernier article.

[ @publisher = ] N’publisher'

Spécifie un serveur de publication non-SQL Server. @publisher est sysname, avec la valeur par défaut NULL.

@publisher ne doit pas être utilisé lors de la demande de validation sur un serveur de publication SQL Server.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Notes

sp_publication_validation est utilisé dans la réplication transactionnelle.

sp_publication_validation peut être appelé à tout moment après l’activation des articles associés à la composition. 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 fausses. 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 de l’Abonné et du serveur de publication ne changent pas lors de la validation d’une publication, arrêtez le service Microsoft Distributed Transaction Coordinator (MS DTC) sur le serveur de publication pendant la validation.

autorisations

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