Du kan ikke opdatere identitetskolonnen.
SQL Server tillader ikke at opdatere identitetskolonnen i modsætning til, hvad du kan gøre med andre kolonner med en opdateringssætning.
Selvom der er nogle alternativer til at opnå en lignende form for krav.
- Når værdien for identitetskolonnen skal opdateres for nye registreringer
Brug DBCC CHECKIDENT som kontrollerer den aktuelle identitetsværdi for tabellen, og hvis det er nødvendigt, ændrer identitetsværdien.
DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
- Når værdien for identitetskolonnen skal opdateres for eksisterende poster
Brug IDENTITY_INSERT som tillader eksplicitte værdier at blive indsat i identitetskolonnen i en tabel.
SET IDENTITY_INSERT YourTable {ON|OFF}
Eksempel:
-- 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