Kaip ištaisyti klaidą „Negalima į lentelę įterpti aiškios tapatybės stulpelio vertės, kai IDENTITY_INSERT nustatyta į OFF“?



Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas

Kuriant „SQL Server“ duomenų bazę, pagrindinio rakto stulpelyje dažnai nustatomas automatinis prieaugis. Tam nustatomas pirminio rakto stulpelio IDENTITY apribojimas. Pradinė vieta ir prieaugio žingsnis perkeliami į stulpelį „TAPATYBĖ“ kaip parametrus. Tuomet, kai pridedamas naujas įrašas ir nustatoma atpažinimo įterpimo reikšmė IŠJUNGTA, stulpelio „TAPATYBĖ“ vertė padidinama iš anksto nustatytu žingsniu, paprastai skaičiumi. Be to, IDENTITY INSERT ypatybė nustatyta į ON tik vienai lentelei vienoje sesijoje.



Šiame straipsnyje aptarsime klaidą „Lentelėje negalima įterpti aiškios tapatybės stulpelio vertės

kai IDENTITY_INSERT nustatyta į OFF “ kaip parodyta žemiau.



„IDENTITY INSERT OFF“ išjungimas ir duomenų įterpimas be „PAGRINDINIO RAKTO ID“ į įterpimo sakinį



Klaida atsiranda, kai vartotojas nustatė „identity_insert“ į „OFF“. Tada bando aiškiai įterpti duomenis į lentelės pagrindinio rakto stulpelį. Tai galima paaiškinti naudojant toliau pateiktą pavyzdį.

Duomenų bazių ir lentelių kūrimas:

Pirmiausia sukurkite duomenų bazę pavadinimu „appuals“.

Sukurti duomenų bazę pavadinimu „appuals“.



Sukurkite lentelę pavadinimu „asmuo“ naudodami šį kodą. Pastatyta lentelė naudojant a „PAGRINDINIS PAGRINDINIS TAPATYBĖ“

Sukurti lentelę asmuo (ID INT IDENTITY (1, 1), first_name VARCHAR (MAX), last_name VARCHAR (MAX))

Lentelės, pavadintos „asmuo“, sukūrimas

„Tapatybės_įterpimo išjungimas |“ nustatymo sintaksė įjungta “:

The „Išjungti tapatybę_įterpti | įjungta “ padės mums išspręsti šią klaidą. Teisinga šio teiginio sintaksė yra tokia, kaip nurodyta toliau.

NUSTATYTI IDENTITY_INSERT. .
ĮJUNGTA

Pirmasis argumentas yra duomenų bazės, kurioje yra lentelė, pavadinimas. Antrasis argumentas rodo schemą, kuriai priklauso ta lentelė, kurios tapatybės vertė turi būti nustatyta ĮJUNGTA arba IŠJUNGTA . Trečias argumentas

yra lentelė su stulpeliu „Tapatybė“.

Iš esmės yra du skirtingi duomenų įterpimo į lentelę būdai be klaidų. Tai laikoma šios klaidos sprendimu ir aptariama toliau.

1 klaida: nustatykite tapatybės_įterpimas IŠJUNGTA

Pirmuoju atveju į lentelę įterpsime duomenis su „IDENTITY INSERT“ nustatytas į „IŠJUNGTA“ . Taigi, jei INSERT sakinyje yra ID, gausite klaidą „Negalima įterpti aiškios tapatybės stulpelio vertės lentelėje„ asmuo “, kai IDENTITY_INSERT nustatyta į OFF“.

Užklausos skirtuke vykdykite šį kodą.

nustatyti tapatybę_įterpti asmenį; įterpti į asmens (ID, vardas, pavardė) reikšmes (3, 'Sadia