Créer un champ auto-incrémenté avec SQL Server
Noter ce cours :
Si vous avez déjà utilisé MySQL, vous avez surement vu des colonnes Auto-incrémentées (disposant d'une propriété AUTOINCREMENT).
Sous SQL Server, cette propriété n'existe pas. Elle porte à la place le nom d'Identity. Elle peut (optionnellement) prendre deux paramètres :
- Le premier appelé seed est la première valeur auto-incrémentée qui sera insérée dans la table.
- Le second appelé increment spécifie le pas d'incrémentation. Une valeur de 1 (par défaut) signifie que la prochaine ligne insérée aura une valeur auto-incrémentée de 1 par rapport à la précédente ligne.
Modifier un champ
Pour modifier un champ et lui donner les possibilités d'auto-incrément, vous pouvez utiliser SQL Server Management Studio. En étant connecté à votre base de données, affichez la table dont vous souhaitez modifier un des champs. Ce champ ne doit pas accepter les valeurs nulles, et doit être de type entier numérique (INT).
Cliquez sur le dossier Columns pour afficher la liste des colonnes disponibles, puis effectuez un clic avec le bouton droit sur le champ dont vous souhaitez ajouter l'Identity. Cliquez ensuite sur Modify (Modifier).
Repérez la ligne Identity specification puis cliquez dessus pour la développer. A droite, dans la ligne (Is Identity), cliquez sur la flèche puis indiquez Yes (Oui).
Indiquez ensuite pour les deux lignes du dessous la valeur de votre choix pour l'Identity Increment et le Seed, conformément à ce que nous avons étudié plus haut.
Enregistrez ensuite les changements en appuyant sur les touches CTRL + S. Si un message d'erreur vous informe que vous ne pouvez modifier la table, voyez cet article pour modifier une table avec SQL Server Management Studio.
Ajouter un champ
Vous pouvez le faire de la même manière qu'en modifiant un champ. Voyons plutôt comment le faire en SQL. La requête a effectuer est la suivante (en remplaçant les valeurs champ par le nom du champ, seed par la première valeur qui sera utilisée à l'insertion de la première ligne, et increment par le pas d'incrémentation).
Par exemple, si vous souhaitez ajouter un champ nommé id et auto-incrémenté de 1 commençant à 5, vous utiliserez la requête suivante :