Partager via


sp_publication_validation (Transact-SQL)

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.

Icône Lien de rubrique Conventions de la syntaxe de 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 publication. publication est de type sysname et n'a pas de valeur par défaut.

  • [@rowcount_only=] rowcount_only
    Indique s'il faut ou non retourner uniquement le nombre de lignes de la table. rowcount_only est de type smallint et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    0

    Effectue une somme de contrôle SQL Server 7.0.

    [!REMARQUE]

    Lorsqu'un article est filtré horizontalement, l'opération de comptage de ligne est effectuée à la place de l'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.

    [!REMARQUE]

    Pour les Abonnés SQL Server version 7.0, seule la validation du 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 de type tinyint et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    0

    Effectue un comptage total à l'aide de COUNT(*).

    1

    Effectue un comptage rapide à partir de sysindexes.rows. Le décompte de lignes est nettement plus rapide dans sys.sysindexes que dans la table. Cependant, comme sys.sysindexes n'est pas mis à jour immédiatement, le nombre de lignes peut être inexact.

    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 a pour valeur NULL et que la procédure stockée est en cours d'utilisation pour l'obtention de la valeur, une fonction COUNT(*) totale est toujours utilisée.

  • [ @shutdown_agent=] shutdown_agent
    Indique si l'Agent de distribution doit se fermer immédiatement à la fin de la validation. shutdown_agent est de type bit, avec 0 comme valeur par défaut. Si la valeur est égale à 0, l'agent de réplication ne se ferme pas. Si la valeur est égale à 1, l'agent de réplication se ferme après la validation du dernier article.

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

    [!REMARQUE]

    publisher ne doit pas être utilisé lors d'une demande de validation sur un serveur de publication SQL Server.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Notes

sp_publication_validation est utilisé dans la réplication transactionnelle.

La procédure sp_publication_validation peut être appelée à n'importe quel moment après que les articles associés à une publication aient été activés. 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 comporte des abonnés pouvant être mis à jour immédiatement, sp_publication_validation risque de détecter des erreurs inexistantes. sp_publication_validation calcule d'abord le nombre de lignes ou la somme de contrôle au niveau du serveur de publication, puis au niveau de 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 appartenant au rôle serveur fixe sysadmin ou au rôle de base de données fixe db_owner peuvent exécuter la procédure sp_publication_validation.

Voir aussi

Référence

sp_article_validation (Transact-SQL)

sp_table_validation (Transact-SQL)

Procédures stockées système (Transact-SQL)

Concepts

Valider des données sur l'Abonné