2010-12-17 20 views

答えて

14

いずれかを選択します。

a)は、いくつかの有効なデフォルト値
Bとnullではないの作成)はnullを作成し、それを埋める、あなたがDEFAULTを指定する必要がありますいずれかのnullではない

0
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 
+1

これは既存のテーブルでは機能しません。 – zerkms

+2

ALTER TABLEは、NULLを含むことができる、またはDEFAULT定義が指定されている列、または追加される列がID列またはタイムスタンプ列であるか、または前の条件がいずれも満たされない場合は、この列の追加。列 'Val'は空でない表 '#Test'にこれらの条件を満たしていないため追加できません。 –

+0

私の間違い...私は今質問を修正しました。 –

55

に変えます、またはNULLを許可して列を追加し、すべての値を更新して、列をNOT NULLに変更します。

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

表に、NOT NULL列を追加するには2つの方法があります。

  1. はNULL制約を持つ列を追加することで、テーブルを変更します。列にいくつかのデータを入力します。例:列にはデフォルト値を与えることによって、NOT NULL制約を持つ列を追加することによって、表を変更

  2. 「」で更新することができます。

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

    例:で、テーブルABCにx列(ビットデータ型)を追加する ALTERテーブルのTableName はこれを行う最も簡単な方法があるNewColumnデータ型、NOT NULL DEFAULT ''

0

を追加しますデフォルト値0

PS:これはテーブルデザイナーを使用することの大きなファンではありません。古典的なものや時代遅れのものは、ずっと簡単です。 :)。これが役に立ちますようお願いいたします

関連する問題