Cum se remediază eroarea „Nu se poate introduce valoarea explicită pentru coloana de identitate în tabel când IDENTITAT_INSERT este setat la OPRIT”?



Încercați Instrumentul Nostru Pentru Eliminarea Problemelor

Coloana cheii primare este adesea setată la creșterea automată la construirea unei baze de date SQL Server. Limita de IDENTITATE este activată pentru coloana cheie primară pentru a face acest lucru. Locația de pornire și pasul de creștere sunt transferate în coloana IDENTITATE ca parametri. Apoi, ori de câte ori este adăugată o nouă înregistrare și inserarea identității este setată la OPRIT, valoarea coloanei IDENTITATE este mărită cu pasul predefinit, în mod normal, un număr. În plus, proprietatea IDENTITY INSERT este setată la ON doar pentru o singură masă într-o singură sesiune.



În acest articol, vom discuta despre eroare „Nu se poate insera valoare explicită pentru coloana de identitate în tabel

când IDENTITY_INSERT este setat la OFF ” așa cum se arată mai jos.



Dezactivarea „INSERT IDENTITY” și inserarea datelor fără „ID-ul CHEIEI PRIMARE” în ​​declarația insert



Eroarea apare atunci când utilizatorul a setat „identity_insert” la „OFF”. Apoi încearcă să insereze în mod explicit datele în coloana cheii principale a tabelului. Acest lucru poate fi explicat folosind exemplul de mai jos.

Crearea bazei de date și a tabelelor:

Mai întâi, creați o bază de date numită „appuals”.

Crearea unei baze de date numită „appuals”.



Creați un tabel numit „persoană” folosind următorul cod. Masa construita folosind un „IDENTITATE CHEIE PRIMARĂ”

CREARE TABLE persoană (ID INT IDENTITY (1, 1), prenume VARCHAR (MAX), prenume VARCHAR (MAX))

Crearea unui tabel numit „persoană”

Sintaxa pentru setarea „identity_insert off | pe':

„Set identity_insert off | pe' ne va ajuta să rezolvăm această eroare. Sintaxa corectă pentru această afirmație este cea de mai jos.

SET IDENTITY_INSERT. .
PE

Întrucât primul argument este numele bazei de date în care se află tabelul. Al doilea argument este schema căreia îi aparține tabela a cărei valoare de identitate trebuie setată PE sau OPRIT . Al treilea argument

este tabelul cu coloana de identitate.

Există fundamental două moduri diferite de inserare a datelor în tabel fără erori. Acestea sunt considerate soluția la această eroare și sunt discutate mai jos.

Eroare 1: setați OFF_insertare_identitate

În primul caz, vom insera date în tabel cu „INSERT DE IDENTITATE” setat la „OFF” . Deci, dacă ID-ul este prezent în instrucțiunea INSERT, veți primi eroarea „Nu se poate introduce o valoare explicită pentru coloana de identitate în tabelul‘ persoană ’când IDENTITATE_INSERT este setată la OPRIT”.

Executați următorul cod în fila interogare.

setează identitatea_inserează persoana; introduceți în persoană (ID, prenume, prenume) valori (3, 'Sadia