69 votes

Requête SQL pour ajouter une nouvelle colonne après une colonne existante dans SQL Server 2005

J'ai besoin d'une requête SQL qui ajoute une nouvelle colonne après une colonne existante, donc la colonne sera ajoutée dans un ordre spécifique.

S'il vous plaît suggérez-moi si une ALTER qui le fait.

68voto

Brad Christie Points 58505

Microsoft SQL (AFAIK) ne vous permet pas de modifier la table et d'ajouter une colonne après une colonne spécifique. Votre meilleur pari est d'utiliser Sql Server Management Studio, ou de jouer en supprimant et en rajoutant la table, ou en créant une nouvelle table et en déplaçant les données manuellement. ni l'un ni l'autre ne sont très gracieux.

MySQL fait cependant :

 ALTER TABLE mytable
ADD COLUMN  new_column <type>
AFTER       existing_column

28voto

ilan Points 61

C'est possible.

Tout d'abord, ajoutez simplement chaque colonne de la manière habituelle (comme la dernière colonne).

Deuxièmement, dans SQL Server Management Studio Entrez dans Outils => Options.

Sous l'onglet 'Designers' => menu 'Table and Database Designers', décochez l'option 'Empêcher l'enregistrement des modifications nécessitant une recréation de la table'.

Ensuite, faites un clic droit sur votre table et choisissez 'Design'. En mode 'Design', faites simplement glisser les colonnes pour les ordonner.

N'oubliez pas de sauvegarder.

4voto

ashish.chotalia Points 2105

Si vous souhaitez modifier l'ordre des colonnes dans le serveur SQL, il n'existe actuellement aucun moyen direct de le faire dans SQL Server.

Jetez un œil à http://blog.sqlauthority.com/2008/04/08/sql-server-change-order-of-column-in-database-tables/

Vous pouvez modifier l'ordre tout en modifiant la conception de la table.

3voto

wwmbes Points 161

Ajoutez d'abord la nouvelle colonne à l'ancienne table via SSMStudio. Allez dans la base de données >> table >> colonnes. Faites un clic droit sur les colonnes et choisissez une nouvelle colonne . Suivez l'assistant. Créez ensuite la nouvelle table avec les colonnes ordonnées comme vous le souhaitez comme suit :

 select * into my_new_table from (
select old_col1, my_new_col, old_col2, old_col3
from my_old_table 
) as A
;

Renommez ensuite les tables comme vous le souhaitez via SSMStudio. Allez dans la base de données >> table >> choisissez renommer.

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