Kako odpraviti napako »V tabeli ni mogoče vstaviti eksplicitne vrednosti za stolpec identitete, če je IDENTITY_INSERT nastavljen na OFF«?



Preizkusite Naš Instrument Za Odpravo Težav

Pri gradnji baze podatkov SQL Server je stolpec primarnega ključa pogosto nastavljen na samodejni prirastek. Omejitev IDENTITY je nastavljena za stolpec primarnega ključa, da to stori. Začetna lokacija in korak prirastka se kot parametra preneseta v stolpec IDENTITETA. Nato se vsakič, ko je dodan nov zapis in je vstavljanje identitete nastavljeno na OFF, vrednost stolpca IDENTITY poveča za vnaprej določen korak, običajno število. Poleg tega je lastnost IDENTITY INSERT nastavljena na ON samo za eno tabelo v eni seji.



V tem članku bomo razpravljali o napaki „V tabelo ni mogoče vstaviti eksplicitne vrednosti za stolpec identitete

ko je IDENTITY_INSERT nastavljeno na OFF « kot je prikazano spodaj.



Izklop 'IDENTITY INSERT' in vstavljanje podatkov brez 'PRIMARY KEY ID' v izjavo za vstavljanje



Napaka se pojavi, ko je uporabnik za »Ident_insert« nastavil na »IZKLOP«. Nato poskuša izrecno vstaviti podatke v stolpec s primarnim ključem tabele. To je mogoče razložiti s spodnjim primerom.

Ustvarjanje baze podatkov in tabel:

Najprej ustvarite bazo podatkov z imenom 'appuals'.

Ustvarjanje baze podatkov z imenom 'appuals'.



Ustvarite tabelo z imenom 'oseba' z uporabo naslednje kode. Izdelana miza z uporabo a “OSNOVNA KLJUČNA IDENTITETA”

USTVARI TABELO osebe (ID INT IDENTITY (1, 1), first_name VARCHAR (MAX), last_name VARCHAR (MAX))

Ustvarjanje tabele z imenom 'oseba'

Sintaksa za nastavitev “identity_insert off | vklopljeno:

The “Nastavi ident_insert off | na ' nam bo pomagal odpraviti to napako. Pravilna sintaksa za ta stavek je naslednja.

NASTAVITE IDENTITY_INSERT. .
VKLOPLJENO

Medtem ko je prvi argument ime baze podatkov, v kateri je tabela. Drugi argument prikazuje shemo, ki ji pripada ta tabela, katere vrednost identitete mora biti nastavljena VKLOPLJENO ali IZKLOPLJENO . Tretji argument

je tabela s stolpcem identitete.

V bistvu obstajata dva različna načina vstavljanja podatkov v tabelo brez napak. Ti se štejejo za rešitev te napake in so obravnavani v nadaljevanju.

Napaka 1: OFF_insert_insert

V prvem primeru bomo podatke vstavili v tabelo z “VSTOP IDENTITETE” nastavljena »IZKLOPLJENO« . Torej, če je ID prisoten v stavku INSERT, boste dobili napako 'Ne morem vstaviti eksplicitne vrednosti za stolpec identitete v tabeli' oseba ', če je IDENTITY_INSERT nastavljen na OFF'.

Na zavihku poizvedbe izvedite naslednjo kodo.

nastavite ident_insert osebo; vstavi v vrednosti osebe (ID, ime, priimek) (3, 'Sadia