Pokud máme tabulku, která obsahuje IDENTITY sloupec, generuje SQL Server nového hodnoty pro IDENTITY sloupec automaticky. Pokud přeci jen chceme vložit hodnotu sami a nespoléhat na automatický generátor, stačí použít SET IDENTITY INSERT ON|OFF příkaz, jak ukazuje následující příklad:
SET IDENTITY_INSERT SampleTable ON GO INSERT SampleTable (RowID, Name, Value) VALUES (1, 'Name1', 'Value1') GO SET IDENTITY_INSERT SampleTable OFF GO
SET IDENTITY INSERT je ovšem dobrý sluha, ale zlý pán. Nesmíme totiž nikdy zapomenout, že se jedná o SET příkaz, který nastavuje vlastnosti aktuálního připojení. A platí, že v daném připojení může mít explicitní vkládání IDENTITY hodnot povolena vždy pouze jedna tabulka. Takže následující sekvence příkazů skončí s chybou:
CREATE TABLE dbo.SampleTable ( RowID INT NOT NULL IDENTITY(1,1) PRIMARY KEY, Name NVARCHAR(100), Value NVARCHAR(100) ) GO SET IDENTITY_INSERT SampleTable ON INSERT SampleTable (RowID, Name, Value) VALUES (1, 'Name1', 'Value1') --SET IDENTITY_INSERT SampleTable OFF GO CREATE TABLE dbo.SampleTable2 ( RowID INT NOT NULL IDENTITY(1,1) PRIMARY KEY, Name NVARCHAR(100), Value NVARCHAR(100) ) GO SET IDENTITY_INSERT SampleTable2 ON GO INSERT SampleTable2 (RowID, Name, Value) VALUES (10, 'Name1', 'Value1') GO SET IDENTITY_INSERT SampleTable2 OFF GO