Nelze aktualizovat sloupec identity.
SQL Server neumožňuje aktualizovat sloupec identity na rozdíl od toho, co můžete udělat s jinými sloupci pomocí příkazu aktualizace.
Ačkoli existují některé alternativy, jak dosáhnout podobného druhu požadavku.
- Když je potřeba aktualizovat hodnotu sloupce Identita pro nové záznamy
Použijte DBCC CHECKIDENT který zkontroluje aktuální hodnotu identity pro tabulku a v případě potřeby změní hodnotu identity.
DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
- Když je potřeba aktualizovat hodnotu sloupce Identita pro stávající záznamy
Použijte IDENTITY_INSERT což umožňuje vložení explicitních hodnot do sloupce identity v tabulce.
SET IDENTITY_INSERT YourTable {ON|OFF}
Příklad:
-- Set Identity insert on so that value can be inserted into this column
SET IDENTITY_INSERT YourTable ON
GO
-- Insert the record which you want to update with new value in the identity column
INSERT INTO YourTable(IdentityCol, otherCol) VALUES(13,'myValue')
GO
-- Delete the old row of which you have inserted a copy (above) (make sure about FK's)
DELETE FROM YourTable WHERE ID=3
GO
--Now set the idenetity_insert OFF to back to the previous track
SET IDENTITY_INSERT YourTable OFF