Bonjour à tous,
Comment peut-on renuméroter "automatiquement" une id en "auto_increment" suite à des suppressions de lignes dans la table ?
les id doit êtres de nouveau ordonné
Merci d'avance.
Bonjour à tous,
Comment peut-on renuméroter "automatiquement" une id en "auto_increment" suite à des suppressions de lignes dans la table ?
les id doit êtres de nouveau ordonné
Merci d'avance.
Merci de poster la sortie de :
Quelle doit être la nouvelle valeur de départ ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DBCC CHECKIDENT('nomdetlatable') GO
Cette table est-elle référencée par d'autres tables ? Car j'imagine que l'id est la clef primaire (un truc qui ne devrait JAMAIS changé).
Si c'est le cas, à moins d'avoir mis des clauses on update cascade sur toutes les relations, ça va être casse-bonbon pour tout mettre à jour.
Sinon, pour mettre à jour, je créerais une CTE qui reprendrait les lignes de la table en question en appliquant la fonction de fenêtre ROW_NUMBER en ordonnant (et partitionnant) sur l'id histoire d'avoir les nouveaux id. Après, il suffit de mettre à jour la colonne en faisant une jointure sur la CTE fraichement créée.
Partager