Comment incrémenter automatiquement la clé primaire d'une table de base de données du serveur SQL ? J'ai parcouru le forum mais je ne vois pas comment faire.
J'ai regardé les propriétés mais je ne vois pas d'option. J'ai vu une réponse où l'on va dans la propriété de spécification Identity
et on la met sur oui et on met l'incrément Identity
sur 1, mais cette section est grisée et je ne peux pas changer le non en oui.
Il doit y avoir un moyen simple de faire cela, mais je ne le trouve pas.
Assurez-vous que le type de données de la colonne Key est int
, puis définissez l'identité manuellement, comme le montre l'image.
![entrez la description de l'image ici][1]
Ou il suffit d'exécuter ce code
-- ID is the name of the [to be] identity column
ALTER TABLE [yourTable] DROP COLUMN ID
ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)
le code s'exécutera, si ID
n'est pas la seule colonne de la table
[1] : http://i.stack.imgur.com/ueRYJ.jpg
Image de référence fifo's
Lorsque vous créez la table, vous pouvez créer une colonne [IDENTITY
][1] comme suit :
CREATE TABLE (
ID_column INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
...
);
La propriété IDENTITY
va auto-incrémenter la colonne à partir du numéro 1. (Notez que le type de données de la colonne doit être un entier). Si vous voulez ajouter cette propriété à une colonne existante, utilisez une commande [ALTER TABLE
][2].
Edition :
J'ai testé un peu, et je ne trouve pas de moyen de changer les propriétés de l'identité via la fenêtre des propriétés de la colonne pour diverses tables. Je suppose que si vous voulez faire d'une colonne une colonne d'identité, vous DEVEZ utiliser une commande ALTER TABLE
.
[1] : http://msdn.microsoft.com/en-us/library/ms186775%28v=sql.105%29.aspx [2] : http://msdn.microsoft.com/en-us/library/ms190273%28v=sql.105%29.aspx
Vous devez développer la section Identité pour exposer l'incrément et la graine.
! [entrer la description de l'image ici] [1]
Modification : J'ai supposé que vous aviez un type de données entier, et non char(10). Ce qui est raisonnable et valable lorsque j'ai posté cette réponse.