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
Libérer: 2025-01-19 09:17:13
original
946 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal