65 votes

Table alternative avec une nouvelle colonne non nulle dans la table existante en SQL

Comment ajouter une colonne non nulle dans une table existante dans SQL Server 2005 ?

112voto

astander Points 83138

Vous devrez soit spécifier un DEFAULT, soit ajouter la colonne avec les valeurs NULL autorisées, mettre à jour toutes les valeurs, puis modifier la colonne en NOT NULL.

 ALTER TABLE <YourTable> 
ADD <NewColumn> <NewColumnType> NOT NULL DEFAULT <DefaultValue>

22voto

zerkms Points 105994

Choisissez soit :

a) Créer non nul avec une valeur par défaut valide b) Créez null, remplissez-le, modifiez pour ne pas null

3voto

user3602795 Points 31

Il existe deux manières d'ajouter les colonnes NOT NULL à la table :

  1. MODIFIER la table en ajoutant la colonne avec la contrainte NULL. Remplissez la colonne avec des données. Ex : la colonne peut être mise à jour avec ''

  2. ALTER la table en ajoutant la colonne avec la contrainte NOT NULL en donnant des valeurs DEFAULT. Table ALTER NomTable ADD NewColumn DataType NOT NULL DEFAULT ''

2voto

Arvind Srikanth Points 21

La façon la plus simple de le faire est :

 ALTER TABLE db.TABLENAME ADD COLUMN [datatype] NOT NULL DEFAULT 'value'

Ex : Ajout d'une colonne x (bit datatype) à une table ABC avec la valeur par défaut 0

 ALTER TABLE db.ABC ADD COLUMN x bit NOT NULL DEFAULT 0

PS : Je ne suis pas un grand fan d'utiliser le concepteur de table pour cela. C'est tellement plus facile d'être conventionnel / démodé parfois. :). J'espère que cela aide à répondre

0voto

Anil Soman Points 1317
IF NOT EXISTS (SELECT 1
FROM syscolumns sc
JOIN sysobjects so
ON sc.id = so.id
WHERE so.Name = 'Table1'
AND sc.Name = 'Col1')
BEGIN
ALTER TABLE Table1
ADD Col1 INT NOT NULL DEFAULT 0;
END
GO

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