SQL Server:尝试将非空列添加到现有表(表为空)

时间:2013-06-20 19:11:18

标签: sql sql-server

我正在尝试向我的退出表添加一个新列但是我一直在尝试插入非空列时出错。

我理解这对于包含大量数据的现有数据库会有什么问题,但是我的数据库还没有数据,所以我很困惑为什么我会收到这个错误。

是否有一个简单的解决方案(我不想添加默认值)

3 个答案:

答案 0 :(得分:2)

您有两个选项,为其提供默认值,或者添加没有非空约束的字段,然后稍后更改表以在填充字段后添加非空约束。

答案 1 :(得分:1)

当表为空时,这可以正常工作。

CREATE TABLE X(Y INT)

ALTER TABLE T ADD Y INT NOT NULL

无需添加临时默认约束或将其创建为NULL,然后填充ALTER,除非该表实际上并非如所声明的那样为空。

答案 2 :(得分:1)

我认为这个表并不像你想象的那样空。

试试这个:

Truncate Table <YourTableName>

然后尝试alter table语句。