Partager via


MSSQL_ENG020598

Détails du message

Nom de produit

SQL Server

Version du produit

10.0

Numéro de build du produit

 

ID de l'é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 à des publications transactionnelles doivent être traités en lecture seule, parce que les changements ne sont pas propagés 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.

  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 Comparer des tables répliquées pour identifier 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.

Voir aussi

Concepts

Guide de référence des erreurs et des événements (réplication)