Modification des colonnes d’identité
Pour les colonnes d’identité, il est possible de modifier la méthode de génération, la valeur de départ et la valeur d’incrémentation.
La commande SET GENERATED
vous permet de changer la façon dont la colonne d’identité est générée.Il existe deux façons de générer une colonne d’identité :
-
Les colonnes
BY DEFAULT
permettent de remplacer la valeur générée par le système dans les opérateursINSERT
,UPDATE OR INSERT
,MERGE
en spécifiant simplement la valeur de cette colonne dans la liste des valeurs. -
Les colonnes
ALWAYS
ne permettent pas d’écraser une valeur générée par le système, une erreur sera générée lors de la tentative d’écraser la valeur d’une telle colonne d’identité. Il est seulement possible d’écraser la valeur de cette colonne dans une instruction INSERT en spécifiant la directive OVERRIDING SYSTEM VALUE.
ALTER TABLE objects
ALTER ID SET GENERATED ALWAYS;
Si seule la clause RESTART
est spécifiée, la valeur du générateur est remise à zéro.La clause optionnelle WITH
permet de spécifier une valeur autre que zéro pour la nouvelle valeur de l’oscillateur interne.
ALTER TABLE objects
ALTER ID RESTART WITH 100;
La commande SET INCREMENT [BY]
vous permet de changer la valeur d’incrémentation de la colonne d’identité.La valeur de l’incrément doit être différente de 0.
ALTER TABLE objects
ALTER ID SET INCREMENT BY 2;
Plusieurs propriétés d’une colonne d’identité peuvent être modifiées dans une seule déclaration, par exemple
ALTER TABLE objects
ALTER ID SET GENERATED ALWAYS RESTART SET INCREMENT BY 2;
La commande DROP IDENTITY
supprime la séquence système associée à la colonne identité et la convertit en une colonne normale.
ALTER TABLE objects
ALTER ID DROP INDENTITY;