SQL中现有表中具有new not null列的备用表

时间:2010-12-17 06:12:54

标签: sql-server

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

5 个答案:

答案 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列添加到表中:

  1. 通过添加具有NULL约束的列来更改表。在列中填入一些数据。例如:列可以使用''

  2. 进行更新
  3. 通过给出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