协慌网

登录 贡献 社区

更改列:null 为非 null

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

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

使用SQL Server 2000

答案

首先,使所有当前的 NULL 值消失:

UPDATE [Table] SET [Column]=0 WHERE [Column] IS NULL

然后,更新表定义以禁止 NULL:

ALTER TABLE [Table] ALTER COLUMN [Column] INTEGER NOT NULL

我有同样的问题,但该字段用于默认为 null,现在我想将其默认为 0. 这需要在 mdb 的解决方案后再添加一行:

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

您必须分两步完成:

  1. 更新表,以便列中没有空值。
UPDATE MyTable SET MyNullableColumn = 0
WHERE MyNullableColumn IS NULL
  1. 更改表以更改列的属性
ALTER TABLE MyTable
ALTER COLUMN MyNullableColumn MyNullableColumnDatatype NOT NULL