5
A
回答
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
1
我對此表示懷疑。
http://msdn.microsoft.com/en-us/library/ms190273(SQL.90).aspx
Microsoft推薦的方法如下(從上面的網址採取)
UPDATE MyTable SET NullCol = N'some_value' WHERE NullCol IS NULL
ALTER TABLE MyTable ALTER COLUMN NullCOl NVARCHAR(20) NOT 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
相關問題
- 1. SQL服務器增加值
- 2. 如何更改sql服務器中的默認列值
- 3. 默認值從服務器
- 4. 增加時間在SQL服務器
- 5. SQL服務器 - 刪除約束,並添加默認值一次
- 6. SQL服務器:從默認值的兩個表選擇0
- 7. 增加MySQL服務器超時值
- 8. 如何在mysql中增加默認值
- 9. SQL Server觸發器:當另一個表的列值增加時,如何增加表中的列值?
- 10. Smtp服務器默認超時
- 11. SQL Server 2008使用服務器ID作爲默認值
- 12. SQL服務器:遍歷每一行,增加的值添加到
- 13. 添加列 - SQL服務器表
- 14. 默認服務器在〜/ .pypirc
- 15. 默認web服務器
- 16. 註冊新的SQL 2000服務器時更改默認端口
- 17. asp.net中web服務wsdl的默認值
- 18. SQL Server將表內的列複製爲默認值
- 19. 下拉列表默認值
- 20. SQL默認值
- 21. SQL默認值
- 22. SQL服務器:自動遞增的十進制列
- 23. 在服務器端的漸進增強?
- 24. 有沒有Symfony2默認容器服務的列表?
- 25. Sql服務器臨時表
- 26. Sharepoint Webpart定製屬性獲取服務器重啓時的默認值
- 27. wamp服務器中的默認服務器名稱是什麼?
- 28. Microsoft SQL報表服務器認證
- 29. 列表框默認值
- 30. 默認值選擇列表