Vous ne pouvez pas mettre à jour la colonne d'identité.
SQL Server ne permet pas de mettre à jour la colonne d'identité contrairement à ce que vous pouvez faire avec d'autres colonnes avec une instruction de mise à jour.
Bien qu'il existe des alternatives pour atteindre un type d'exigence similaire.
- Lorsque la valeur de la colonne Identité doit être mise à jour pour les nouveaux enregistrements
Utilisez DBCC CHECKIDENT qui vérifie la valeur d'identité actuelle de la table et, si nécessaire, modifie la valeur d'identité.
DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
- Lorsque la valeur de la colonne Identité doit être mise à jour pour les enregistrements existants
Utilisez IDENTITY_INSERT qui permet d'insérer des valeurs explicites dans la colonne d'identité d'une table.
SET IDENTITY_INSERT YourTable {ON|OFF}
Exemple :
-- 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