SQL Server IDENTITY_INSERT umožňuje vkládání explicitních hodnot do sloupce identity tabulky.
příkaz IDENTITY_INSERT musí být nastaven na vložení explicitní hodnoty pro sloupec identity. Ve výchozím nastavení IDENTITY_INSERT je vypnutý.
SYNTAX
SET IDENTITY_INSERT schema_name . ] table_name { ON | OFF }
database_name
je název databáze, ve které uvedená tabulka existuje.
schema_name
je název schématu, ke kterému tabulka patří.,
table_name
je název tabulky se sloupcem identity.
umožňuje podívat se na příklad SET IDENTITY_INSERT v SQL serveru.
následující příklad ukazuje, jak se IDENTITY_INSERT používá pro danou hodnotu identity explicitně pro sloupec identity.
vytvoříme tabulku-X, která má ID sloupce identity. Umožňuje zkontrolovat, zda se snažíme předat explicitní hodnotu ID sloupce identity.,
CREATE TABLE X (ID INT IDENTITY(1,1) ) ;INSERT INTO X (ID) VALUES (1);
jak vidíme, dává chybu explicitní hodnoty sloupce identity v tabulce X a také naznačuje, že pokud chceme vložit explicitní hodnotu pro sloupec identity, musí být IDENTITY_INSERT zapnutý.
nyní se snažíme po nastavení IDENTITY_INSERT znovu spustit nad příkazem .
SET IDENTITY_INSERT dbo.X ONINSERT INTO X (ID) VALUES (1);SET IDENTITY_INSERT dbo.X OFF
jak vidíme , explicitní hodnota sloupce identity je vložena do tabulky.,
ve výše uvedeném prohlášení musíme zadat seznam sloupců během vložení, jinak nedovolí explicitní hodnotu sloupce identity a hodí chybu.
Jak vidíme v následující prohlášení i po IDENTITY_INSERT ON , stále to dává chybová explicitní hodnoty pro sloupec identity, jak budeme muset zadat název sloupce během vložit.