MSSQL_ENG020598

Description détaillée du message

Nom du produit

SQL Server

Version du produit

10.0

Numéro de version

 

ID d'événement

20598

Source de l'événement

MSSQLSERVER

Composant

Moteur de base de données SQL Server

Nom symbolique

Texte du message

La ligne n'a pas été trouvée chez l'abonné lors de l'application de la commande répliquée.

Explication

Cette erreur est générée dans la réplication transactionnelle lorsque l'Agent de distribution tente de mettre à jour sur l'Abonné, mais que la ligne a été supprimée ou que la clé primaire de la ligne a été modifiée. Par défaut, les abonnés aux publications transactionnelles doivent être traités en lecture seule car les modifications ne sont pas propagées en retour vers le serveur de publication. Dans le cas de la réplication transactionnelle, les modifications des utilisateurs doivent être effectuées sur l'Abonné, uniquement si les abonnements devant être mis à jour ou la réplication d'égal à égal sont utilisés. Pour plus d'informations sur ces options, consultez Abonnements pouvant être mis à jour pour la réplication transactionnelle et Réplication transactionnelle d'égal à égal.

Action de l'utilisateur

Pour rectifier ce problème :

  1. Si la réplication doit continuer pendant que vous identifiez la source de l'erreur, spécifiez le paramètre -SkipErrors 20598 pour l'Agent de distribution. L'agent peut alors ignorer les modifications qui provoquent l'erreur 20598, tout en permettant la réplication des autres modifications. Pour plus d'informations, consultez Omission des erreurs lors de la réplication transactionnelle.

  2. Identifiez sur l'Abonné les modifications qui ont été supprimées ou qui comportent une clé primaire différente de celle des lignes correspondantes sur le serveur de publication. Vous pouvez utiliser l'Utilitaire tablediff pour déterminer les lignes qui sont différentes dans les bases de données de publication et d'abonnement. Pour plus d'informations sur l'utilisation de cet utilitaire avec des bases de données répliquées, consultez Procédure : comparer les tables répliquées pour les différences (programmation de réplication).

  3. Corrigez les lignes sur l'Abonné à l'aide de l'utilitaire tablediff ou d'une autre méthode.

  4. (Facultatif) Supprimez le paramètre -SkipErrors.