2627: Violation of PRIMARY KEY / UNIQUE KEY constraint. Cannot insert duplicate key in object (violation de contrainte PRIMARY KEY / UNIQUE KEY ; clé en double non insérable)
SQL ServerQue signifie cette erreur ?
Vous avez tenté d'insérer ou de mettre à jour une valeur qui existe déjà dans une ou plusieurs colonnes protégées par une contrainte PRIMARY KEY ou UNIQUE. Les clés en double ne sont pas acceptées.
Cause
Insertion de la même valeur unique une seconde fois, UPDATE entrant en collision avec une valeur existante, absence de contrôle d'unicité, ou deux requêtes concurrentes produisant la même ligne.
Comment la corriger
Vérifiez si la ligne existe avant l'insertion, ou utilisez MERGE / IF NOT EXISTS. Pour des insertions idempotentes, appliquez le modèle "INSERT ... WHERE NOT EXISTS". Interceptez l'erreur et renvoyez un message explicite. Si vous avez réellement besoin de données en double, revoyez la contrainte. Utilisez IDENTITY ou SEQUENCE pour éviter les collisions lors de la génération des clés.
Autres entrées pour ce moteur
- 1205Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim (transaction choisie comme victime de l'interblocage)
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ... (ligne à clé en double non insérable dans un objet avec index unique)
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint (instruction en conflit avec une contrainte FOREIGN KEY / CHECK)
- 18456Login failed for user (échec de connexion pour l'utilisateur)
- 8152String or binary data would be truncated (les données chaîne ou binaires seraient tronquées)