CORRECTIF : l’erreur « une valeur spécifiée a violé les contraintes d’intégrité pour une colonne ou une table » si la publication de fusion contient de nombreux articles et les contraintes de SQL Server Compact 3.5

S’applique à : Microsoft SQL Server Compact 3.5 Service Pack 2

Symptômes


Prenons l’exemple du scénario suivant :
  • Vous installez Microsoft SQL Server Compact 3.5 sur un ordinateur.
  • Vous créez un abonné dans SQL Server Compact 3.5.
  • Vous téléchargez nombre de lignes à partir d’une publication de fusion à une base de données tandis que l’éditeur se synchronise avec l’abonné. Les lignes contiennent de nombreux articles et les contraintes.
Dans ce scénario, un message d’erreur semblable au suivant est enregistré dans le journal des erreurs SQL Server :
Erreur de System.Data.SqlServerCe.SqlCeExceptionNative = 0, HRESULT =-2147217873, le Message d’erreur : une valeur spécifiée a violé les contraintes d’intégrité pour une colonne ou une table.
RemarqueCe problème se produit dans le système d’exploitation 32 bits et le système d’exploitation 64 bits.

Cause


Ce problème se produit car un ID exchange non valide est utilisé. Lorsque le nombre de lignes pour le téléchargement est dans un état d’attente, SQL Compact Agent du Client appelle une méthode de nouvelles tentatives qui utilise un code d’échange non valide. Par conséquent, le problème mentionné dans la section « Symptômes » se produit.

Résolution


Le correctif qui résout ce problème est inclus dans le package de mise à jour cumulative 5 pour SQL Server Compact 3.5 Service Pack 2 (SP2). Pour plus d’informations sur la façon d’obtenir le package de mise à jour cumulative 5 pour SQL Server Compact 3.5 SP2, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
2553608 Mise à jour cumulative 5 pour SQL Server Compact 3.5 Service Pack 2