Maison >base de données >tutoriel mysql >Comment réparer « Impossible d'insérer une valeur explicite pour la colonne d'identité dans le tableau » ?

Comment réparer « Impossible d'insérer une valeur explicite pour la colonne d'identité dans le tableau » ?

DDD
DDDoriginal
2025-01-19 09:17:131015parcourir

How to Fix

Dépannage de l'erreur « Impossible d'insérer une valeur explicite pour la colonne d'identité » dans SQL Server

Vous rencontrez l'erreur « Impossible d'insérer une valeur explicite pour la colonne d'identité dans la table 'table' lorsque IDENTITY_INSERT est défini sur OFF » dans SQL Server ? Cela se produit généralement lorsque vous tentez d'insérer manuellement une valeur dans une colonne désignée pour l'auto-incrémentation. Les colonnes d'identité génèrent automatiquement des valeurs séquentielles pour chaque nouvelle ligne et, par défaut, IDENTITY_INSERT est défini sur OFF, empêchant l'insertion directe de valeurs.

Voici comment résoudre ce problème :

Méthode 1 : Activer temporairement IDENTITY_INSERT

Cette méthode permet d'insérer une valeur spécifique dans la colonne identité, mais seulement temporairement.

<code class="language-sql">SET IDENTITY_INSERT Table1 ON

INSERT INTO Table1 (OperationID, OpDescription, FilterID)  --Column list is mandatory
VALUES (20, 'Hierarchy Update', 1);

SET IDENTITY_INSERT Table1 OFF</code>

Méthode 2 : Supprimer la contrainte d'identité

Si vous n'avez pas besoin d'auto-incrémentation pour cette colonne, supprimez la contrainte d'identité. Remarque : Cela désactive définitivement l'incrémentation automatique.

<code class="language-sql">ALTER TABLE Table1
DROP CONSTRAINT IDENTITY_Constraint;</code>

Après cette modification, vous pouvez insérer des valeurs directement dans la colonne. Cependant, n'oubliez pas que vous devrez spécifier manuellement des valeurs pour chaque insertion de ligne ultérieure. Une réflexion approfondie est nécessaire avant d'opter pour cette méthode.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn