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 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. 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” Ustvarjanje tabele z imenom 'oseba' The “Nastavi ident_insert off | na ' nam bo pomagal odpraviti to napako. Pravilna sintaksa za ta stavek je naslednja. 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 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. 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.ko je IDENTITY_INSERT nastavljeno na OFF « kot je prikazano spodaj.
Ustvarjanje baze podatkov in tabel:
USTVARI TABELO osebe (ID INT IDENTITY (1, 1), first_name VARCHAR (MAX), last_name VARCHAR (MAX))
Sintaksa za nastavitev “identity_insert off | vklopljeno:
NASTAVITE IDENTITY_INSERT. .
VKLOPLJENO
je tabela s stolpcem identitete.
Napaka 1: OFF_insert_insert
nastavite ident_insert osebo; vstavi v vrednosti osebe (ID, ime, priimek) (3, 'Sadia