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服務器:選擇......從FULL JOIN具有默認值的列
- 7. SQL服務器 - 刪除約束,並添加默認值一次
- 8. 如何在sql服務器的現有表中添加默認值
- 9. SQL服務器:從默認值的兩個表選擇0
- 10. 設置多表sql服務器的默認值
- 11. 增加MySQL服務器超時值
- 12. 如何設置默認值,同時增加了新列
- 13. SQL服務器中刪除,並增加
- 14. SQL表默認值
- 15. postgresql表中的默認遞增值
- 16. 如何在mysql中增加默認值
- 17. SQL Server觸發器:當另一個表的列值增加時,如何增加表中的列值?
- 18. SQL服務器 - 強制對一個int
- 19. 默認值開始服務
- 20. 在eclipse中增加服務器超時
- 21. Smtp服務器默認超時
- 22. SQL Server 2008使用服務器ID作爲默認值
- 23. SQL Server列的默認值
- 24. 默認列值
- 25. 添加列 - SQL服務器表
- 26. SQL服務器:遍歷每一行,增加的值添加到
- 27. 默認服務器在〜/ .pypirc
- 28. 默認web服務器
- 29. CAS服務器默認服務
- 30. XLD模式:如何強制默認值