Comment corriger l'erreur «Impossible d'insérer une valeur explicite pour la colonne d'identité dans la table lorsque IDENTITY_INSERT est défini sur OFF»?



Essayez Notre Instrument Pour Éliminer Les Problèmes

La colonne de clé primaire est souvent définie sur l'incrémentation automatique lors de la construction d'une base de données SQL Server. La limite IDENTITY est activée pour la colonne de clé primaire pour ce faire. L'emplacement de départ et l'étape d'incrémentation sont transférés dans la colonne IDENTITY en tant que paramètres. Ensuite, chaque fois qu'un nouvel enregistrement est ajouté et que l'insertion d'identité est définie sur OFF, la valeur de la colonne IDENTITY est augmentée de l'étape prédéfinie normalement un nombre. De plus, la propriété IDENTITY INSERT est définie sur ON uniquement pour une table dans une seule session.



Dans cet article, nous discuterons de l'erreur 'Impossible d'insérer une valeur explicite pour la colonne d'identité dans la table

lorsque IDENTITY_INSERT est défini sur OFF ' comme indiqué ci-dessous.



Désactivation de «IDENTITY INSERT OFF» et insertion de données sans «PRIMARY KEY ID» dans l'instruction d'insertion



L'erreur survient lorsque l'utilisateur a défini «identity_insert» sur «OFF». Essaie ensuite d'insérer explicitement des données dans la colonne de clé primaire de la table. Cela peut être expliqué à l'aide de l'exemple ci-dessous.

Création de bases de données et de tables:

Tout d'abord, créez une base de données nommée «appuals».

Création d'une base de données nommée «appuals».



Créez une table nommée «personne» à l'aide du code suivant. Table construite à l'aide d'un 'IDENTITÉ PRIMAIRE DE LA CLÉ'

CREATE TABLE personne (ID INT IDENTITY (1, 1), prénom VARCHAR (MAX), nom VARCHAR (MAX))

Créer une table nommée 'personne'

Syntaxe pour définir «identity_insert off | sur':

le “Set identity_insert off | sur' nous aidera à résoudre cette erreur. La syntaxe correcte pour cette instruction est la suivante.

SET IDENTITY_INSERT. .
SUR

Alors que le premier argument est le nom de la base de données dans laquelle se trouve la table. Le deuxième argument montre le schéma auquel appartient cette table dont la valeur d'identité doit être définie sur SUR ou DE . Le troisième argument

est la table avec la colonne d'identité.

Il existe fondamentalement deux manières différentes d'insérer des données dans la table sans erreur. Ceux-ci sont considérés comme la solution à cette erreur et sont décrits ci-dessous.

Erreur 1: définissez identity_insert sur OFF

Dans le premier cas, nous insérerons des données dans le tableau avec le 'IDENTITY INSERT' mis à 'DE' . Donc, si l'ID est présent dans l'instruction INSERT, vous obtiendrez l'erreur 'Impossible d'insérer une valeur explicite pour la colonne d'identité dans la table' personne 'lorsque IDENTITY_INSERT est défini sur OFF'.

Exécutez le code suivant dans l'onglet de requête.

désactiver la personne identity_insert; insérer dans la personne (ID, prénom, nom) les valeurs (3, 'Sadia