SQL Server IDENTITY_INSERT lehetővé teszi az explicit értékek beillesztését a táblázat identity oszlopába.
az IDENTITY_INSERT nyilatkozatot be kell állítani az Identity oszlop kifejezett értékének beszúrásához. Alapértelmezés szerint az IDENTITY_INSERT ki van kapcsolva.
SYNTAX
SET IDENTITY_INSERT schema_name . ] table_name { ON | OFF }
database_name
annak az adatbázisnak a neve, amelyben a megadott táblázat létezik.
schema_name
annak a sémának a neve, amelyhez a táblázat tartozik.,
table_name
egy azonosító oszlopú tábla neve.
lehetővé teszi, hogy nézd meg egy példát SET IDENTITY_INSERT az SQL SERVER.
következő példa bemutatja, hogyan IDENTITY_INSERT használják adott identitás értéke kifejezetten identitás oszlop.
létrehozunk egy X táblázatot, amelynek azonosító oszlopazonosítója van. Lehetővé teszi, hogy ellenőrizze, ha megpróbáljuk átadni explicit értéket identity oszlop ID.,
CREATE TABLE X (ID INT IDENTITY(1,1) ) ;INSERT INTO X (ID) VALUES (1);
amint látjuk, az X. táblázatban az identity oszlop kifejezett értékének hibáját adja, és azt is sugallja, hogy ha explicit értéket akarunk beilleszteni az identity oszlopba, akkor az IDENTITY_INSERT be kell kapcsolni.
most megpróbáljuk újra futtatni a fenti nyilatkozatot az IDENTITY_INSERT beállítása után .
SET IDENTITY_INSERT dbo.X ONINSERT INTO X (ID) VALUES (1);SET IDENTITY_INSERT dbo.X OFF
mint látjuk , az identitás oszlop kifejezett értéke kerül beillesztésre a táblázatba.,
a fenti nyilatkozatban meg kell adnunk az oszloplistát a Beszúrás során , különben nem teszi lehetővé az identity oszlop kifejezett értékét, és hibát okoz.
amint azt a következő nyilatkozatban látjuk, még az IDENTITY_INSERT bekapcsolása után is, az identity oszlop explicit értékeinek hibáját adja meg, mivel az oszlop nevét meg kell adnunk a Beszúrás során.