Hvordan fikser jeg feilen 'Kan ikke sette inn eksplisitt verdi for identitetskolonnen i tabellen når IDENTITY_INSERT er satt til AV'?

Den primære nøkkelkolonnen er ofte satt til automatisk økning når du konstruerer en SQL Server-database. IDENTITET-grensen er satt til for den primære nøkkelkolonnen for å gjøre dette. Startplasseringen og trinnet for økning overføres til IDENTITY-kolonnen som parametere. Så når en ny post blir lagt til, og identitetsinnsatsen er satt til AV, økes verdien av IDENTITET-kolonnen med det forhåndsdefinerte trinnet, normalt et tall. Videre er egenskapen IDENTITY INSERT satt til ON bare for en tabell i en enkelt økt.

I denne artikkelen vil vi diskutere feilen “Kan ikke sette inn eksplisitt verdi for identitetskolonnen i tabellen

når IDENTITY_INSERT er satt til AV ”
som vist under.

Feilen oppstår når brukeren har satt “identity_insert” til “OFF”. Forsøk deretter å sette inn data i den primære nøkkelkolonnen i tabellen eksplisitt. Dette kan forklares ved hjelp av eksemplet nedenfor.

Database og tabelloppretting:

Først oppretter du en database som heter “appuals”.

Lag en tabell med navnet “person” ved hjelp av følgende kode. Bygget bord ved hjelp av en “PRIMÆR NØKKELIDENTITET”

OPPRETT TABELLperson (ID INT IDENTITET (1, 1), fornavn VARCHAR (MAX), etternavn VARCHAR (MAX))

Syntaks for å sette “identity_insert off | på":

De “Sett av identitetsinnsetting av | på" vil hjelpe oss med å løse denne feilen. Den riktige syntaksen for denne påstanden er som nedenfor.

SETT IDENTITY_INSERT  . .  {AV | PÅ}

Mens det første argumentet er navnet på databasen som tabellen ligger i. Det andre argumentet viser er skjemaet som tabellen tilhører hvis identitetsverdi må settes til eller AV. Det tredje argumentet

er tabellen med identitetskolonnen.

Det er fundamentalt to forskjellige måter å sette data inn i tabellen uten feil. Disse blir ansett som løsningen på denne feilen, og blir diskutert nedenfor.

Feil 1: Sett AV_identitet

I det første tilfellet vil vi sette inn data i tabellen med “IDENTITETSINSERT” satt til "AV". Så hvis ID-en er til stede i INSERT-setningen, får du feilen "Kan ikke sette inn eksplisitt verdi for identitetskolonnen i tabellen" person "når IDENTITY_INSERT er satt til AV".

Utfør følgende kode i søkefanen.

 sett av identitet_innsett person; sett inn i person (ID, fornavn, etternavn) verdier (3, 'Sadia', 'Majeed'), (4, 'Michel', 'Ronald')

Resultatet blir slik.

Løsning:

Når du snur “IDENTITY INSERT OFF”, den“PRIMÆR NØKKEL-ID” MÅ IKKE være NÆRSTÅENDE i innsatsuttalelsen

Utfør nå følgende kode i søkefanen

 sett av identitet_innsett person; sett inn verdiene for person (fornavn, etternavn) ('Sadia', 'Majeed'), ('Michel', 'Ronald')

Dette vil sette inn data i tabellen uten feil. Dessuten er det ikke nødvendig at den PRIMÆRE NØKKEL-ID-en skal settes inn av brukeren, det vil heller legge til unik ID-verdi automatisk som vist i figuren nedenfor.

Feil 2: Angi identitetsinnsetting PÅ

I det andre tilfellet vil vi sette inn data i tabellen med “IDENTITETSINSERT” satt til "PÅ". Så hvis ID-en ikke er tilstede i INSERT-setningen, får du feilen ”Msg 545, nivå 16, tilstand 1, linje 17. Den eksplisitte verdien må spesifiseres for identitetskolonnen i tabellen‘ person ’enten når IDENTITY_INSERT er satt til PÅ eller når en replikasjonsbruker setter inn i en IKKE FOR REPLIKASJON-identitetskolonne”.

Løsning:

Når du snur“IDENTITETSINSERT PÅ” de "PRIMÆRNØKKEL ID ” må være til stede i vedleggsuttalelsen.

Utfør følgende kode i søkefanen

 sette person_innsetting person på; sett inn i person (ID, fornavn, etternavn) verdier (5, 'Jack', 'svart'), (6, 'john', 'Wicky')

Dette vil sette inn data i tabellen uten feil. Dermed The HOVEDNØkkel ID kreves eksplisitt å bli satt inn av brukeren. Det vil heller ikke automatisk legge til unik ID-verdi som vist i figuren nedenfor.

Hvis du "SET IDENTITY INSERT ON ”, vil den forbli på under hele økten. Dermed kan du legge til så mange poster du vil når dette er satt. Dette refererer også bare til økten der den er aktivert. Så hvis du åpner en annen søkefane, må du snu den igjen for det spørringsvinduet.

Facebook Twitter Google Plus Pinterest