Vous connaissez ?
Cette erreur peut avoir plusieurs origines. Pour ma part, il est apparu après avoir vidé le contenu d'une liste et surtout la réinitialisation du générateur d'ID des nouveaux items créer dans cette liste, via cette instruction SQL :
UPDATE <Content DB>.dbo.AllListsAux set NextAvailableId=1 where ListID='<GUID>'
Et après l'exécution de cette requête, j'ajoute un nouveau élément dans la liste vide et bang Erreur !!!!
System.Data.SqlClient.SqlException: Impossible d'insérer une ligne de clé en double dans l'objet « dbo.NameValuePair » avec un index unique « NameValuePair_CI ». La valeur de clé dupliquée est (634c1f26-7587-4fc1-bb4d-783b1b851193, 875df231-21ac-4e67-9a18-ce4dd1da1b24, de8beacf-5505-47cd-80a6-aa44e7ffe2f4, <NULL>, 1, 1). L'instruction a été arrêtée. à System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) à System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) à System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) à System.Data.SqlClient.SqlDataReader.ConsumeMetaData() à ... cb5ae0d7-b00f-470e-826c-c81dd5474f61
Je cherche donc la table dbo.NameValuePair, il s'agit d'une table pour l'indexation:
SELECT * FROM <Content DB>.dbo.NameValuePair where ListID='<GUID>'
SELECT * FROM <Content DB>.dbo.NameValuePair where ListID='<GUID>'
Et je retrouve des données qui ont pour en référence les éléments supprimés de la liste.
DELETE FROM <Content DB>.dbo.NameValuePair where ListID='<GUID>'
Je supprime ces tuples et Hop je peux ajouter des éléments !!!
Aucun commentaire:
Enregistrer un commentaire