135 votes

Sql Server: Ajouter une colonne à une table et unique numéro d'eux

Je veux ajouter une colonne à un héritage de la base de données et d'écrire une procédure par laquelle je peux attribuer à chaque enregistrement d'une valeur différente. Quelque chose comme l'ajout d'une colonne et de générer automatiquement les données.

Comme, si j'ajoute une nouvelle colonne intitulée "ID" (numéro) je veux, puis initialiser une valeur unique pour chaque enregistrement. Donc, ma colonne ID auront des archives de dire de 1 à 1000. Comment dois-je faire?

242voto

Simon Johnson Points 4641

Cela dépendra de la base de données mais pour SQL Server, ce qui pourrait être réalisé comme suit:

alter table Example
add NewColumn int identity(1,1)

26voto

Tom Martin Points 1179

Il serait utile si vous avez posté ce SQL base de données que vous utilisez. Pour MySQL, vous voulez probablement auto_increment:

ALTER TABLE tableName ADD id MEDIUMINT NOT NULL AUTO_INCREMENT KEY

Vous ne savez pas si cela s'applique les valeurs de façon rétroactive. Si ce n'est pas que vous devriez juste être capable de parcourir vos valeurs avec une procédure stockée ou un programme simple (à condition que personne d'autre n'est écrit à la base de données) et de définir l'utilisation de l' LAST_INSERT_ID() fonction pour générer la valeur de l'id.

13voto

Roy Tang Points 2077

pour oracle, vous pourriez faire quelque chose comme

alter table mytable ajouter (myfield entier);

update matable set myfield = rownum;

11voto

Flavien Volken Points 2985

Et la Postgres équivalent (deuxième ligne est obligatoire que si vous voulez "id" à la clé):

ALTER TABLE tableName ADD id SERIAL;
ALTER TABLE tableName ADD PRIMARY KEY (id);

4voto

Ilya Kochetov Points 11641

Juste à l'aide d'une instruction ALTER TABLE de travail. Ajouter la colonne avec le type approprié et une IDENTITÉ drapeau et il devrait faire l'affaire

Découvrez cet article MSDN http://msdn.microsoft.com/en-us/library/aa275462(SQL.80).aspx sur la syntaxe ALTER TABLE

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X