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 „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į. Pirmiausia sukurkite duomenų bazę pavadinimu „appuals“. Sukurti duomenų bazę pavadinimu „appuals“. Sukurkite lentelę pavadinimu „asmuo“ naudodami šį kodą. Pastatyta lentelė naudojant a „PAGRINDINIS PAGRINDINIS TAPATYBĖ“ Lentelės, pavadintos „asmuo“, sukūrimas The „Išjungti tapatybę_įterpti | įjungta “ padės mums išspręsti šią klaidą. Teisinga šio teiginio sintaksė yra tokia, kaip nurodyta toliau. 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 Iš esmės yra du skirtingi duomenų įterpimo į lentelę būdai be klaidų. Tai laikoma šios klaidos sprendimu ir aptariama toliau. 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ą.kai IDENTITY_INSERT nustatyta į OFF “ kaip parodyta žemiau.
Duomenų bazių ir lentelių kūrimas:
Sukurti lentelę asmuo (ID INT IDENTITY (1, 1), first_name VARCHAR (MAX), last_name VARCHAR (MAX))
„Tapatybės_įterpimo išjungimas |“ nustatymo sintaksė įjungta “:
NUSTATYTI IDENTITY_INSERT. .
ĮJUNGTA
yra lentelė su stulpeliu „Tapatybė“.
1 klaida: nustatykite tapatybės_įterpimas IŠJUNGTA
nustatyti tapatybę_įterpti asmenį; įterpti į asmens (ID, vardas, pavardė) reikšmes (3, 'Sadia