在SQL中现有表中添加非空列

如何在SQL Server 2005的现有表中添加不为空的列?

您将不得不指定一个DEFAULT,或者添加允许NULL的列,更新所有的值,然后将列更改为NOT NULL。

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

select:

a)创build一个有效的默认值不为空
b)创buildnull,填充它,改成not null

有两种方法可以将NOT NULL列添加到表中:

  1. 通过添加具有NULL约束的列来修改表。 用一些数据填充列。 例如:列可以更新为''

  2. 通过提供DEFAULT值来添加具有NOT NULL约束的列来修改表。 ALTER table TableName ADD NewColumn DataType NOT NULL DEFAULT''

 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 

最简单的方法是:

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

例如:将列x(位数据types)添加到默认值为0的表ABC中

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

PS:我不是使用桌子devise师的一个很大的粉丝。 它有时更容易被传统的/老式的。 :)。 希望这有助于回答