Hoe los ik de fout op ‘Kan geen expliciete waarde voor identiteitskolom in tabel invoegen als IDENTITY_INSERT is ingesteld op UIT’?



Probeer Ons Instrument Voor Het Oplossen Van Problemen

De primaire sleutelkolom wordt vaak ingesteld op automatisch verhogen bij het samenstellen van een SQL Server-database. De IDENTITY-limiet is ingesteld voor de primaire sleutelkolom om dit te doen. De startlocatie en stap van verhoging worden als parameters overgebracht naar de IDENTITY-kolom. Telkens wanneer een nieuw record wordt toegevoegd en de identiteitsinvoeging is ingesteld op UIT, wordt de waarde van de IDENTITEIT-kolom verhoogd met de vooraf gedefinieerde stap, normaal gesproken een getal. Bovendien wordt de eigenschap IDENTITY INSERT slechts voor één tabel in één sessie op ON gezet.

In dit artikel bespreken we de fout “Kan geen expliciete waarde invoegen voor identiteitskolom in tabel

wanneer IDENTITY_INSERT is ingesteld op OFF ' zoals hieronder weergegeven.



De 'IDENTITY INSERT OFF' zetten, en gegevens invoegen zonder 'PRIMARY KEY ID' in insert statement



De fout treedt op wanneer de gebruiker 'identity_insert' op 'OFF' heeft gezet. Probeert vervolgens expliciet gegevens in de primaire sleutelkolom van de tabel in te voegen. Dit kan worden uitgelegd aan de hand van het onderstaande voorbeeld.

Database en tabel maken:

Maak eerst een database met de naam 'appuals'.

Een database aanmaken met de naam 'appuals'.



Maak een tabel met de naam 'persoon' met de volgende code. Gebouwde tafel met behulp van een 'PRIMARY KEY IDENTITY'

CREATE TABLE persoon (ID INT IDENTITY (1, 1), voornaam VARCHAR (MAX), achternaam VARCHAR (MAX))

Een tabel maken met de naam ‘persoon’

Syntaxis voor het instellen van “identity_insert off | Aan':

De “Set identity_insert off | Aan' zal ons helpen deze fout op te lossen. De juiste syntaxis voor deze verklaring is zoals hieronder.

SET IDENTITY_INSERT. .
AAN

Terwijl het eerste argument de naam is van de database waarin de tabel zich bevindt. Het tweede argument dat aantoont is het schema waartoe die tabel behoort, waarvan de identiteitswaarde moet worden ingesteld AAN of UIT . Het derde argument

is de tabel met de identiteitskolom.

Er zijn fundamenteel twee verschillende manieren om gegevens foutloos in de tabel in te voegen. Deze worden beschouwd als de oplossing voor deze fout en worden hieronder besproken.

Fout 1: zet identity_insert UIT

In het eerste geval zullen we gegevens in de tabel invoegen met de 'IDENTITY INSERT' ingesteld op 'UIT' . Dus als de ID aanwezig is in de INSERT-instructie, krijgt u de foutmelding 'Kan geen expliciete waarde invoegen voor identiteitskolom in tabel‘ person ’wanneer IDENTITY_INSERT is ingesteld op UIT'.

Voer de volgende code uit op het tabblad Query.

zet identity_insert person uit; invoegen in persoon (ID, voornaam, achternaam) waarden (3, 'Sadia