如何在SQL Server 2005的现有表中添加非空列?
答案 0 :(得分:79)
您必须指定DEFAULT,或者添加允许NULL的列,更新所有值,然后将列更改为NOT NULL。
ALTER TABLE <YourTable>
ADD <NewColumn> <NewColumnType> NOT NULL DEFAULT <DefaultValue>
答案 1 :(得分:16)
选择:
a)使用一些有效的默认值来创建非空值
b)创建null,填充它,alter to not null
答案 2 :(得分:3)
有两种方法可以将NOT NULL列添加到表中:
通过添加具有NULL约束的列来更改表。在列中填入一些数据。例如:列可以使用''
通过给出DEFAULT值添加具有NOT NULL约束的列来更改表。 ALTER表TableName 添加NewColumn DataType NOT NULL DEFAULT''
答案 3 :(得分:2)
最简单的方法是:
ALTER TABLE db.TABLENAME ADD COLUMN [datatype] NOT NULL DEFAULT 'value'
Ex:将列x(位数据类型)添加到默认值为0的表ABC
ALTER TABLE db.ABC ADD COLUMN x bit NOT NULL DEFAULT 0
PS:我不是很喜欢使用表设计器的人。它有时更容易传统/老式。 :)。希望这有助于回答
答案 4 :(得分: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