我有一個表有幾個能夠爲空的整數列。 因爲多種緣由,這是不可取的,所以我但願將全部空值更新爲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"