Jak opravit chybu „Nelze vložit explicitní hodnotu pro sloupec identity do tabulky, když je IDENTITY_INSERT nastaven na OFF“?



Vyzkoušejte Náš Nástroj Pro Odstranění Problémů

Sloupec primárního klíče je často nastaven na automatický přírůstek při konstrukci databáze serveru SQL Server. K tomu je pro sloupec primárního klíče nastaven limit IDENTITY. Počáteční umístění a krok přírůstku se přenesou do sloupce IDENTITY jako parametry. Potom, kdykoli je přidán nový záznam a vložka identity je nastavena na OFF, hodnota sloupce IDENTITY se zvýší o předem definovaný krok, obvykle o číslo. Vlastnost IDENTITY INSERT je navíc nastavena na ON pouze pro jednu tabulku v jedné relaci.



V tomto článku probereme chybu „Nelze vložit explicitní hodnotu pro sloupec identity v tabulce

když je IDENTITY_INSERT nastaveno na VYPNUTO “ Jak je ukázáno níže.



Vypnutí funkce „IDENTITY INSERT OFF“ a vložení dat bez „ID PRIMARY KEY“ do příkazu insert



Chyba nastane, když uživatel nastavil „identity_insert“ na „OFF“. Pak se pokusí explicitně vložit data do sloupce primárního klíče tabulky. To lze vysvětlit pomocí níže uvedeného příkladu.

Vytvoření databáze a tabulky:

Nejprve vytvořte databázi s názvem „appuals“.

Vytvoření databáze s názvem „appuals“.



Vytvořte tabulku s názvem „osoba“ pomocí následujícího kódu. Postavený stůl pomocí a „PRIMÁRNÍ KLÍČOVÁ IDENTITA“

CREATE TABLE person (ID INT IDENTITY (1, 1), first_name VARCHAR (MAX), last_name VARCHAR (MAX))

Vytvoření tabulky s názvem „osoba“

Syntaxe pro nastavení „identity_insert off | na':

The „Vypnout vložení identity | | na' pomůže nám tuto chybu vyřešit. Správná syntaxe tohoto příkazu je uvedena níže.

NASTAVTE IDENTITY_INSERT. .
NA

Zatímco první argument je název databáze, ve které je tabulka umístěna. Druhým argumentem je schéma, do kterého tato tabulka patří, jejíž hodnota identity musí být nastavena NA nebo VYPNUTO . Třetí argument

je tabulka se sloupcem identity.

Existují zásadně dva různé způsoby vkládání dat do tabulky bez chyby. Ty jsou považovány za řešení této chyby a jsou popsány níže.

Chyba 1: Nastavte identity_insert VYPNUTO

V prvním případě vložíme data do tabulky s „IDENTITY INSERT“ nastaven na 'VYPNUTO' . Pokud je tedy ID v příkazu INSERT, zobrazí se chyba „Nelze vložit explicitní hodnotu pro sloupec identity do tabulky„ osoba “, když je IDENTITY_INSERT nastaveno na VYPNUTO.“

Na kartě dotazu proveďte následující kód.

vypnout osobu identity_insert; vložte do osob (ID, křestní jméno, příjmení) hodnoty (3, 'Sadia