更改列: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"
相關文章
相關標籤/搜索