Procédure : afficher les informations relatives aux conflits pour les publications de fusion (programmation Transact-SQL de la réplication)
Lorsqu'un conflit est résolu dans une publication de fusion, les données de la ligne perdante sont écrites dans une table de conflits. Ces données peuvent être affichées par programme en utilisant des procédures stockées de réplication. Pour plus d'informations, consultez Détection et résolution avancées des conflits de réplication de fusion.
Pour afficher les informations relatives au conflit et les données de ligne perdante pour tous les types de conflits
Dans la base de données de publication sur le serveur de publication, exécutez sp_helpmergepublication. Notez les valeurs des colonnes suivantes dans le jeu de résultats :
centralized_conflicts - 1 indique que les lignes présentant des conflits sont stockées sur le serveur de publication, et 0 indique que les lignes présentant des conflits ne sont pas stockées sur le serveur de publication.
decentralized_conflicts - 1 indique que les lignes présentant des conflits sont stockées sur l'Abonné, et 0 indique que les lignes présentant des conflits ne sont pas stockées sur l'Abonné.
[!REMARQUE]
Le comportement de journalisation des conflits d'une publication de fusion est défini à l'aide du paramètre @conflict_logging de sp_addmergepublication. L'utilisation du paramètre @centralized_conflicts a été désapprouvée.
Le tableau suivant décrit les valeurs de ces colonnes en fonction de la valeur spécifiée pour @conflict_logging.
Valeur de @conflict_logging
centralized_conflicts
decentralized_conflicts
publisher
1
0
subscriber
0
1
both
1
1
Dans la base de données de publication sur le serveur de publication ou dans la base de données d'abonnement de l'Abonné, exécutez sp_helpmergearticleconflicts. Affectez une valeur à @publication afin de retourner uniquement des informations sur les conflits pour les articles qui appartiennent à une publication spécifique. Des informations sur les tables de conflits sont alors retournées pour les articles présentant des conflits. Notez la valeur de conflict_table pour tout article qui vous intéresse. Si la valeur de conflict_table d'un article est NULL, seuls des conflits de suppression se sont produits dans cet article.
(Facultatif) Examinez les lignes présentant des conflits pour les articles qui vous intéressent. Selon la valeur de centralized_conflicts et decentralized_conflicts obtenues à l'étape 1, effectuez l'une des opérations suivantes :
Dans la base de données de publication sur le serveur de publication, exécutez sp_helpmergeconflictrows. Spécifiez une table de conflits pour l'article (obtenue à l'étape 1) pour @conflict_table. (Facultatif) Spécifiez une valeur pour @publication afin de limiter à une publication spécifique les informations sur les conflits retournées. Des données de ligne et autres informations sur la ligne perdante sont alors retournées.
Dans la base de données d'abonnement de l'Abonné, exécutez sp_helpmergeconflictrows. Spécifiez une table de conflits pour l'article (obtenue à l'étape 1) pour @conflict_table. Des données de ligne et autres informations sur la ligne perdante sont alors retournées.
Pour afficher des informations uniquement sur les conflits avec échec de suppression
Dans la base de données de publication sur le serveur de publication, exécutez sp_helpmergepublication. Notez les valeurs des colonnes suivantes dans le jeu de résultats :
centralized_conflicts - 1 indique que les lignes présentant des conflits sont stockées sur le serveur de publication, et 0 indique que les lignes présentant des conflits ne sont pas stockées sur le serveur de publication.
decentralized_conflicts - 1 indique que les lignes présentant des conflits sont stockées sur l'Abonné, et 0 indique que les lignes présentant des conflits ne sont pas stockées sur l'Abonné.
[!REMARQUE]
Le comportement de journalisation des conflits d'une publication de fusion est défini à l'aide du paramètre @conflict_logging de sp_addmergepublication. L'utilisation du paramètre @centralized_conflicts a été désapprouvée.
Dans la base de données de publication sur le serveur de publication ou dans la base de données d'abonnement de l'Abonné, exécutez sp_helpmergearticleconflicts. Affectez une valeur à @publication afin de retourner uniquement des informations sur les tables de conflits pour les articles qui appartiennent à une publication spécifique. Des informations sur les tables de conflits sont alors retournées pour les articles présentant des conflits. Notez la valeur de source_object pour tout article qui vous intéresse. Si la valeur de conflict_table d'un article est NULL, seuls des conflits de suppression se sont produits dans cet article.
(Facultatif) Examinez les informations sur les conflits pour les conflits de suppression. Selon la valeur de centralized_conflicts et decentralized_conflicts obtenues à l'étape 1, effectuez l'une des opérations suivantes :
Dans la base de données de publication sur le serveur de publication, exécutez sp_helpmergedeleteconflictrows. Spécifiez le nom de la table source (définie à l'étape 1) sur laquelle le conflit s'est produit pour @source_object. (Facultatif) Spécifiez une valeur pour @publication afin de limiter à une publication spécifique les informations sur les conflits retournées. Les informations sur les conflits de suppression stockées sur le serveur de publication sont alors retournées.
Dans la base de données d'abonnement de l'Abonné, exécutez sp_helpmergedeleteconflictrows. Spécifiez le nom de la table source (obtenue à l'étape 1) sur laquelle le conflit s'est produit pour @source_object. (Facultatif) Spécifiez une valeur pour @publication afin de limiter à une publication spécifique les informations sur les conflits retournées. Les informations sur les conflits de suppression stockées sur l'Abonné sont alors retournées.