更改列:null为非null

我有一个表有几个能够为空的整数列。 因为多种缘由,这是不可取的,所以我但愿将全部空值更新为0,而后将这些列设置为NOT NULL 。 除了将空值更改成0 ,还必须保留数据。 java

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

使用SQL Server 2000code


#1楼

这对我有用: io

ALTER TABLE [Table] 
Alter COLUMN [Column] VARCHAR(50) not null;

#2楼

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

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

#3楼

对于Oracle 11g,我可以更改列属性,以下所示: foreach

ALTER TABLE tablename MODIFY columnname datatype NOT NULL;

不然abatichev的回答彷佛很好。 你不能重复改变 - 它抱怨(至少在SQL Developer中)该列已经不是null。 语法


#4楼

对于JDK中包含的内置javaDB(Oracle支持的Apache Derby发行版),下面对我有用command

alter table [table name] alter column [column name] not null;

#5楼

若是是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"
相关文章
相关标签/搜索