如何在SQL Server 2005的现有表中添加非空列?
你需要指定一个默认值,或者添加允许NULL的列,更新所有的值,然后将该列更改为NOT NULL。
ALTER TABLE <YourTable>
ADD <NewColumn> <NewColumnType> NOT NULL DEFAULT <DefaultValue>
选择以下之一:
a)创建非空值并设置一些有效默认值
b)创建空值,填充数据,然后更改为非空
向表中添加 NOT NULL 列有两种方法:
通过添加带有 NULL 约束的列来 ALTER 表。填充列数据,例如:可以使用 '' 更新列。
通过给定默认值,使用带有 NOT NULL 约束的列来 ALTER 表。
ALTER table TableName ADD NewColumn DataType NOT NULL DEFAULT ''
ALTER TABLE db.TABLENAME ADD COLUMN [datatype] NOT NULL DEFAULT 'value'
示例:向表ABC添加列x(位数据类型),默认值为0
ALTER TABLE db.ABC ADD COLUMN x bit NOT NULL DEFAULT 0
PS:我不太喜欢使用表格设计器来完成这个任务,有时候传统/老派的方法更容易。希望这可以回答你的问题。
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