Sådan løses fejlen 'Kan ikke indsætte eksplicit værdi for identitetskolonnen i tabellen, når IDENTITY_INSERT er indstillet til FRA'?



Prøv Vores Instrument Til At Fjerne Problemer

Den primære nøglekolonne er ofte indstillet til automatisk stigning, når der konstrueres en SQL Server-database. IDENTITET-grænsen er aktiveret for den primære nøglekolonne for at gøre dette. Startplaceringen og trin for trin overføres til kolonnen IDENTITY som parametre. Så når der tilføjes en ny post, og identitetsindsatsen sættes til OFF, øges værdien af ​​kolonnen IDENTITY med det foruddefinerede trin, normalt et tal. Desuden er egenskaben IDENTITY INSERT kun sat til ON for en tabel i en enkelt session.



I denne artikel vil vi diskutere fejlen “Kan ikke indsætte eksplicit værdi for identitetskolonnen i tabellen

når IDENTITY_INSERT er indstillet til FRA ” som vist nedenfor.



Slukning af 'IDENTITY INSERT OFF' og indsættelse af data uden 'PRIMARY KEY ID' i indsætningserklæring



Fejlen opstår, når brugeren har indstillet “identity_insert” til “OFF”. Forsøger derefter at indsætte data i den primære nøglekolonne i tabellen eksplicit. Dette kan forklares ved hjælp af eksemplet nedenfor.

Oprettelse af database og tabel:

Opret først en database med navnet 'appuals'.

Oprettelse af en database med navnet 'appuals'.



Opret en tabel med navnet “person” ved hjælp af følgende kode. Bygget bord ved hjælp af en “PRIMÆR NØGLEIDENTITET”

Opret TABEL person (ID INT IDENTITET (1, 1), fornavn VARCHAR (MAX), efternavn VARCHAR (MAX))

Oprettelse af en tabel med navnet 'person'

Syntaks til indstilling af 'identity_insert off | på':

Det “Sæt identitetsindsættelse fra | på' vil hjælpe os med at løse denne fejl. Den korrekte syntaks for denne erklæring er som nedenfor.

SÆT IDENTITY_INSERT. .

Mens det første argument er navnet på den database, hvor tabellen er placeret. Det andet argument viser er det skema, som den tabel tilhører, hvis identitetsværdi skal indstilles til eller AF . Det tredje argument

er tabellen med identitetskolonnen.

Der er fundamentalt to forskellige måder at indsætte data i tabellen uden fejl. Disse betragtes som løsningen på denne fejl og diskuteres nedenfor.

Fejl 1: Sæt identitetsindsættelse FRA

I det første tilfælde indsætter vi data i tabellen med “IDENTITETSINDSÆT” indstillet til 'AF' . Så hvis ID'et er til stede i INSERT-sætningen, får du fejlen 'Kan ikke indsætte eksplicit værdi for identitetskolonnen i tabellen' person ', når IDENTITY_INSERT er indstillet til FRA'.

Udfør følgende kode i forespørgselsfanen.

sæt identitet_indsæt person fra; indsæt i person (ID, fornavn, efternavn) værdier (3, 'Sadia