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 à l'aide d'une instruction de mise à jour.
Bien qu'il existe des alternatives pour répondre à des besoins similaires.
- Lorsque la valeur de la colonne d'identité doit être mise à jour pour de nouveaux enregistrements
Utilisez DBCC CHECKIDENT qui vérifie la valeur d'identité actuelle pour la table et, si nécessaire, modifie la valeur d'identité.
DBCC CHECKIDENT('nomTable', RESEED, NOUVELLE_VALEUR_RESEED)
- Lorsque la valeur de la colonne d'identité doit être mise à jour pour des enregistrements existants
Utilisez IDENTITY_INSERT qui permet d'insérer des valeurs explicites dans la colonne d'identité d'une table.
SET IDENTITY_INSERT VotreTable {ON|OFF}
Exemple:
-- Activer l'insertion d'identité pour pouvoir insérer une valeur dans cette colonne
SET IDENTITY_INSERT VotreTable ON
GO
-- Insérer l'enregistrement que vous souhaitez mettre à jour avec une nouvelle valeur dans la colonne d'identité
INSERT INTO VotreTable(ColonneIdentité, autreColonne) VALEURS(13,'maValeur')
GO
-- Supprimer l'ancienne ligne dont vous avez inséré une copie (ci-dessus) (assurez-vous des clés étrangères)
DELETE FROM VotreTable WHERE ID=3
GO
-- Maintenant désactiver l'insertion d'identité pour revenir à la situation précédente
SET IDENTITY_INSERT VotreTable OFF