2012-02-17 17 views
8

でALTER:SQL Serverの:私は、SQL Serverの次のステートメントを持つ新しい列を追加

ALTER TABLE [dbo].[TruckTbl] 
ADD [TruckState] [bit] NULL DEFAULT 0; 

これが何をするかはどのようにすることができ、既存のレコードの場合は0

に新しいレコードをデフォルトにあります声明の中には、デフォルトで0に設定されているものもあります。

上記のALTERの文章で更新することができますが、更新することはできますか?

+0

あなたのBITフィールドは*本当に* NULL可能でしょうか?これは基本的にはバイステートではなくトライステートにします。そのフィールドがNULLを許可しなかった場合、以前のすべてのレコードは、既定の既定値を受け取ります。 – Jamiec

答えて

18

私は列があなたが0に、すべての既存の行を設定している場合は、すべてNULL可能と将来の挿入のためのデフォルトを持つべきであることを奇妙に思える他の回答に同意しないがWITH VALUES

ALTER TABLE [dbo].[TruckTbl] ADD [TruckState] [bit] NULL DEFAULT 0 WITH VALUES; 

を使用します。ここで列値としてNULLを許可する必要がありますか?

+2

冷たい、決して知らなかった*存在していた。 – Jamiec

0
ALTER TABLE {TABLENAME} 
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} 
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE} 
[WITH VALUES] 

例えば

ALTER TABLE Temp 
ADD ID int NOT NULL DEFAULT(1) 
+0

なぜあなたはそれをdownvoteしましたか? –

関連する問題