首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在表中插入新列

无法在表中插入新列
EN

Stack Overflow用户
提问于 2012-12-11 16:15:46
回答 2查看 11.1K关注 0票数 4

我有一个Product表,我想在其中创建一个新列Modified_ByModified_Date_Time。这些列不允许空。

但是,由于数据库已经有数据,为了创建这个列,我不得不将其定义为“允许空”。然后,运行一个更新新列的进程。最后一步是取消选中“允许空”属性,但是当我试图保存表更改时,我得到了以下错误:

'Product_Details‘表-无法修改表。 无法将值NULL插入'Modified_Date_Time‘列、表'Vendor Products.dboT. not _Product_Details’中;列不允许空值。插入失败。声明已被终止。

所有行都成功地用"Modified_By“和"Modified_Date_Time”列中的正确值进行了更新,因此我不知道为什么要得到这个error...Anyway,似乎是Server 2008创建了一个新的“临时”表,因为我没有任何名称为"Tmp_Orders“的表

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-11 16:18:24

代码语言:javascript
复制
ALTER TABLE {TABLENAME} 
    ADD {COLUMNNAME} {TYPE} {NOT NULL} 
    CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}

您必须设置一个默认值。

代码语言:javascript
复制
ALTER TABLE Product ADD Modified_By datetime DEFAULT (GETDATE())

默认值将设置为今天。

票数 6
EN

Stack Overflow用户

发布于 2012-12-11 16:23:00

我发现互动设计不是很擅长这类事情。最好只是手动添加约束

代码语言:javascript
复制
 ALTER TABLE Table_Name ALTER COLUMN Column_Name DataType NOT NULL

例如。

代码语言:javascript
复制
 ALTER TABLE MyTable ALTER COLUMN A_Column Int NOT NULL;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13824027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档