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 rubriqueConventions 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. L'argument 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. L'argument rowcount_only est du type smallint et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    0

    Effectue une somme de contrôle SQL Server 7.0.

    RemarqueRemarque
    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.

    RemarqueRemarque
    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 avoir 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)

    Effectue un comptage rapide conditionnel en essayant d'abord la méthode rapide. Si la méthode rapide affiche des différences, la méthode totale est utilisée. 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. L'argument shutdown_agent est du 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. Sa valeur par défaut est NULL.

    Notes

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

Valeurs des codes retournés

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.