Maison > base de données > tutoriel mysql > Pourquoi ne puis-je pas insérer une valeur dans ma colonne d'identité et comment y remédier ?

Pourquoi ne puis-je pas insérer une valeur dans ma colonne d'identité et comment y remédier ?

Barbara Streisand
Libérer: 2025-01-19 09:31:09
original
119 Les gens l'ont consulté

Why Can't I Insert a Value into My Identity Column and How Do I Fix It?

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 :

  1. Activer IDENTITY_INSERT : Utilisez cette commande pour autoriser temporairement l'insertion de valeur explicite :

SET IDENTITY_INSERT Table1 ON

  1. Exécutez l'instruction INSERT : Maintenant, insérez vos données. Essentiellement, vous devez spécifier toutes les colonnes dans l'instruction INSERT :

INSERT INTO Table1 (OperationID, OpDescription, FilterID)
VALEURS (20, 'Mise à jour de la hiérarchie', 1)

  1. Désactiver 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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal