【发布时间】:2016-09-27 20:51:28
【问题描述】:
我正在尝试更改现有列并添加一个整数列。添加整数列时,我将 DEFAULT 设置为 10,但添加列时未设置默认值
ALTER TABLE dbo.Contacts ADD Col1 INT DEFAULT 10
我需要执行显式更新脚本来将所有过去的记录设置为默认值
而如果该列不为空,则所有记录的默认值为 10。
ALTER TABLE dbo.Contacts ADD Col2 INT NOT NULL DEFAULT 10
为什么可空列没有设置默认值?在我的实际表中,我有接近 8.5 亿条记录,并且我的新列是可为空的列,我试图避免在我的 ALTER 表脚本之后再进行一次更新。有什么办法?
我正在考虑创建默认为 10 的不可为空的列,然后再次将约束更改为 NULL。这是好方法吗?还有其他方法吗?
【问题讨论】:
-
default的定义意味着,它不能是null,而10总是有值 -
尝试在
non-nullable列中添加WITH VALUES以添加DEFAULT;如果你想更新现有的行
标签: sql-server sql-server-2012 sql-server-2016