Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment ajouter une nouvelle colonne à une table existante dans SQL Server (T-SQL)

Lorsque vous créez une table dans SQL Server à l'aide de T-SQL, vous spécifiez toutes les colonnes de cette table, ainsi que leurs types de données, toutes les contraintes, etc.

Mais que se passe-t-il si un jour vous décidez d'ajouter une nouvelle colonne à ce tableau ? Comment ajouter la nouvelle colonne à la table existante sans recréer la table ? Après tout, supprimer la table et recommencer n'est généralement pas une option, car la table contiendra déjà des données, et vous ne voudrez probablement pas avoir à sauvegarder toutes ces données et à les réinsérer après avoir supprimé et créé la table.

La réponse est :Le ALTER TABLE déclaration.

L'instruction ALTER TABLE

Le ALTER TABLE vous permet de modifier une table existante sans gâcher sa définition existante et toutes les données qui peuvent y résider.

Vous pouvez ajouter une nouvelle colonne à un tableau existant comme ceci :

Voici un exemple :

ALTER TABLE Tasks
    ADD TaskDescription varchar(255) NULL;
GO

Dans cet exemple, nous ajoutons une nouvelle colonne appelée TaskDescription aux Tasks table. Notre nouvelle colonne a un type de données de varchar(255) et il peut contenir des valeurs nulles.

Nous utilisons également GO dans ce cas, qui n'est pas réellement une commande Transact-SQL, mais elle est reconnue par sqlcmd et osql utilitaires et l'éditeur de code de SQL Server Management Studio, et signale la fin d'un lot d'instructions Transact-SQL.

Vérifiez les résultats

Vous pouvez vérifier les résultats en exécutant une requête qui renvoie toutes les colonnes de la table donnée. Comme ceci :

USE Solutions;
SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Tasks';

Ceci répertorie les détails de toutes les colonnes dans les Tasks table. Je passe d'abord à la bonne base de données (dans ce cas, les Solutions base de données). Bien entendu, vous devrez modifier la base de données et le nom de la table si nécessaire.