2008-09-19 61 views

回答

10

你需要兩個語句。首先創建不爲null的列。然後改變NOT NULL約束可空

alter table mytable add mycolumn varchar(10) not null default ('a value') 
alter table mytable alter column mycolumn varchar(10) null 
4

我明白你的問題,但你說,在今後的記錄,NULL(未知的,不確定的或任何你語義)是可以接受的(但如果是在離開一個插入,會有一個默認值),但是對於所有現有的數據,您將繼續並將其分配爲默認值。

我會在這個情況看很難,問爲什麼你甚至要允許在所有未來的記錄NULL值 - 歷史記錄中的什麼都不會擁有它,而且是未來的記錄代替默認。

0

ALTER TABLE {TABLENAME} ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE} [**WITH VALUES]**

WITH VALUES可用於在新列存儲的默認值表中的每個現有行。

有關MSDN鏈接的更多詳細信息。 https://msdn.microsoft.com/en-in/library/ms190273.aspx