我有一个表,有几个可空的整数列。出于几个原因,这是不可取的,因此我希望将所有空值更新为0,然后将这些列设置为NOT NULL。除了将null更改为0之外,还必须保留数据。

我正在寻找特定的SQL语法来更改列(称为ColumnA)为“非空”。假设数据已更新为不包含空值。

使用SQL server 2000。


当前回答

您可以使用以下sql更改现有DB列的定义。

ALTER TABLE mytable modify mycolumn datatype NOT NULL;

其他回答

我有同样的问题,但字段过去默认为null,现在我想把它默认为0。这需要在mdb的解决方案后再添加一行:

ALTER TABLE [Table] ADD CONSTRAINT [Constraint] DEFAULT 0 FOR [Column];

只要列不是唯一标识符即可

UPDATE table set columnName = 0 where columnName is null

Then

修改表并将字段设置为非空,并指定默认值为0

您可以使用以下sql更改现有DB列的定义。

ALTER TABLE mytable modify mycolumn datatype NOT NULL;

让我们举个例子:

TABLE NAME=EMPLOYEE

我想将EMPLOYEE_NAME列更改为NOT NULL。此查询可用于以下任务:

ALTER TABLE EMPLOYEE MODIFY EMPLOYEE.EMPLOYEE_NAME datatype NOT NULL;

在SSMS GUI中也可以使列不为空和添加默认值。

正如其他人已经指出的,您不能设置“not null”直到所有 现有数据为“非空”,如下所示:

UPDATE myTable SET myColumn = 0

完成后,在设计视图中显示表(右击 表,点击“设计视图”),你可以取消勾选允许 像这样空列:

仍然在选定列的设计视图中,可以看到 下面窗口中的列属性,并设置默认值为0,如下所示: