Dépannage des insertions de colonnes d'identité dans SQL Server
Vous rencontrez des problèmes lors de l'insertion de valeurs dans une colonne d'identité dans SQL Server ? Ce guide explique l'erreur courante et propose une solution simple.
Le problème :
Tenter d'insérer une ligne avec une valeur spécifiée pour une colonne d'identité entraîne souvent l'erreur suivante :
Serveur : Msg 544, niveau 16, état 1, ligne 1
Impossible d'insérer une valeur explicite pour la colonne d'identité dans la table 'table' lorsque IDENTITY_INSERT est défini sur OFF.
Comprendre l'erreur :
Les colonnes d'identité génèrent automatiquement des valeurs séquentielles uniques. L'erreur se produit car IDENTITY_INSERT
est, par défaut, défini sur OFF
. Ce paramètre empêche l'attribution directe de valeurs aux colonnes d'identité, garantissant ainsi que la base de données conserve le contrôle de la séquence.
La solution :
Pour insérer une valeur spécifique dans une colonne d'identité, vous devez temporairement remplacer ce comportement par défaut. Suivez ces étapes :
IDENTITY_INSERT
: Utilisez cette commande pour autoriser temporairement l'insertion de valeur explicite :SET IDENTITY_INSERT Table1 ON
INSERT
:INSERT INTO Table1 (OperationID, OpDescription, FilterID)
VALEURS (20, 'Mise à jour de la hiérarchie', 1)
IDENTITY_INSERT
: Après l'insertion, désactivez immédiatement IDENTITY_INSERT
pour restaurer le comportement par défaut :SET IDENTITY_INSERT Table1 OFF
Ce processus vous permet de gérer les valeurs des colonnes d'identité dans des circonstances spécifiques tout en préservant l'intégrité des données. N'oubliez pas de toujours désactiver IDENTITY_INSERT
une fois l'insertion terminée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!