Ako opraviť chybu „Nemôžem vložiť explicitnú hodnotu pre stĺpec identity do tabuľky, keď je IDENTITY_INSERT nastavený na VYPNUTÝ“?



Vyskúšajte Náš Nástroj Na Odstránenie Problémov

Stĺpec primárneho kľúča je často nastavený na automatický prírastok pri konštrukcii databázy SQL Server. Pre stĺpec primárneho kľúča je nastavený limit IDENTITY. Počiatočné umiestnenie a krok prírastku sa prenesú do stĺpca IDENTITY ako parametre. Potom vždy, keď je pridaný nový záznam a vložka identity je nastavená na OFF, hodnota stĺpca IDENTITY sa zvýši o vopred definovaný krok, obvykle o číslo. Vlastnosť IDENTITY INSERT je navyše nastavená na ZAPNUTÉ iba pre jednu tabuľku v jednej relácii.



V tomto článku si rozoberieme chybu „Nie je možné vložiť explicitnú hodnotu pre stĺpec identity do tabuľky

keď je IDENTITY_INSERT nastavený na VYPNUTÉ “ ako je uvedené nižšie.



Vypnutie funkcie „IDENTITY INSERT OFF“ a vkladanie údajov bez „ID PRIMARY KEY“ do príkazu insert



Chyba nastáva, keď používateľ nastavil „identity_insert“ na „OFF“. Potom sa pokúsi explicitne vložiť údaje do stĺpca primárneho kľúča v tabuľke. To možno vysvetliť na príklade uvedenom nižšie.

Vytvorenie databázy a tabuľky:

Najskôr vytvorte databázu s názvom „appuals“.

Vytvorenie databázy s názvom „appuals“.



Pomocou nasledujúceho kódu vytvorte tabuľku s názvom „osoba“. Postavený stôl pomocou a „PRIMÁRNA KLÍČOVÁ IDENTITA“

CREATE TABLE osoba (ID INT IDENTITA (1, 1), meno_VARCHAR (MAX), priezvisko VARCHAR (MAX))

Vytvorenie tabuľky s názvom „osoba“

Syntax pre nastavenie „identity_ vloženie vypnuté | na ”:

The „Vypnúť vloženie identity | na ” pomôže nám vyriešiť túto chybu. Správna syntax pre tento príkaz je uvedená nižšie.

NASTAVIŤ IDENTITY_INSERT. .
ZAP

Zatiaľ čo prvým argumentom je názov databázy, v ktorej je tabuľka umiestnená. Druhým argumentom je schéma, do ktorej patrí táto tabuľka, ktorej hodnota identity musí byť nastavená ZAP alebo VYPNUTÉ . O treťom argumente

je tabuľka so stĺpcom identity.

V zásade existujú dva rôzne spôsoby bezchybného vkladania údajov do tabuľky. Považujú sa za riešenie tejto chyby a sú diskutované nižšie.

Chyba 1: Nastavte identity_insert na VYPNUTÉ

V prvom prípade vložíme údaje do tabuľky s „IDENTITY INSERT“ nastavený na „VYPNUTÉ“ . Takže ak je ID prítomné vo vyhlásení INSERT, zobrazí sa chyba „Nie je možné vložiť explicitnú hodnotu pre stĺpec identity do tabuľky„ osoba “, keď je položka IDENTITY_INSERT nastavená na hodnotu VYPNUTÉ.

Na karte dotazu vykonajte nasledujúci kód.

vypnúť osobu s identitou; vložte do osoby (ID, meno, priezvisko, priezvisko) hodnoty (3, 'Sadia