我有一个表有几个能够为空的整数列。 因为多种缘由,这是不可取的,所以我但愿将全部空值更新为0,而后将这些列设置为NOT NULL
。 除了将空值更改成0
,还必须保留数据。 java
我正在寻找特定的SQL语法来将列(称为ColumnA
)更改成“ not null
”。 假设数据已更新为不包含空值。 spa
使用SQL Server 2000 。 code
这对我有用: io
ALTER TABLE [Table] Alter COLUMN [Column] VARCHAR(50) not null;
我有一样的问题,但该字段用于默认为null,如今我想将其默认为0.这须要在mdb的解决方案后再添加一行: table
ALTER TABLE [Table] ADD CONSTRAINT [Constraint] DEFAULT 0 FOR [Column];
对于Oracle 11g,我可以更改列属性,以下所示: foreach
ALTER TABLE tablename MODIFY columnname datatype NOT NULL;
不然abatichev的回答彷佛很好。 你不能重复改变 - 它抱怨(至少在SQL Developer中)该列已经不是null。 语法
对于JDK中包含的内置javaDB(Oracle支持的Apache Derby发行版),下面对我有用command
alter table [table name] alter column [column name] not null;
若是是FOREIGN KEY CONSTRAINT
...若是主键表的列中不存在“0”,则会出现问题。 解决方案是...... 数据
步骤1: db
使用此代码禁用全部约束:
EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
第2步:
RUN UPDATE COMMAND (as mentioned in above comments) RUN ALTER COMMAND (as mentioned in above comments)
STEP3:
使用如下代码启用全部约束:
exec sp_msforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"