我有一个表,有几个可空的整数列。出于几个原因,这是不可取的,因此我希望将所有空值更新为0,然后将这些列设置为NOT NULL。除了将null更改为0之外,还必须保留数据。
我正在寻找特定的SQL语法来更改列(称为ColumnA)为“非空”。假设数据已更新为不包含空值。
使用SQL server 2000。
我有一个表,有几个可空的整数列。出于几个原因,这是不可取的,因此我希望将所有空值更新为0,然后将这些列设置为NOT NULL。除了将null更改为0之外,还必须保留数据。
我正在寻找特定的SQL语法来更改列(称为ColumnA)为“非空”。假设数据已更新为不包含空值。
使用SQL server 2000。
当前回答
对于JDK (Oracle支持的Apache Derby发行版)中包含的内置javaDB,下面的方法对我来说是有效的
alter table [table name] alter column [column name] not null;
其他回答
让我们举个例子:
TABLE NAME=EMPLOYEE
我想将EMPLOYEE_NAME列更改为NOT NULL。此查询可用于以下任务:
ALTER TABLE EMPLOYEE MODIFY EMPLOYEE.EMPLOYEE_NAME datatype NOT NULL;
对于JDK (Oracle支持的Apache Derby发行版)中包含的内置javaDB,下面的方法对我来说是有效的
alter table [table name] alter column [column name] not null;
只要列不是唯一标识符即可
UPDATE table set columnName = 0 where columnName is null
Then
修改表并将字段设置为非空,并指定默认值为0
在我的情况下,我对张贴的答案有困难。我最终使用了以下方法:
ALTER TABLE table_name CHANGE COLUMN column_name column_name VARCHAR(200) NOT NULL DEFAULT '';
将VARCHAR(200)更改为您的数据类型,并可选择更改默认值。
如果你没有一个默认值,你将有一个问题,因为默认值将为null,从而产生冲突。
首先,使所有当前NULL值消失:
UPDATE [Table] SET [Column]=0 WHERE [Column] IS NULL
然后,更新表定义以禁止“null”:
ALTER TABLE [Table] ALTER COLUMN [Column] INTEGER NOT NULL