我已经有一个由数据组成的表。我需要更改表以添加两个非空的新列。如何在不丢失任何现有数据的情况下实现这一目标?
这是我尝试的(通过右键单击表格并选择设计):
添加新列'EmpFlag'(位,null),'CreatedDate'(日期时间, 空)
更新了表中的'EmpFlag'列,以获得一些有效值。 (只是想在一个领域工作,所以我没有更新'CreatedDate'字段)
现在右键单击表,设计,并使其不为空。
当我尝试保存时,出现此错误消息:
不允许保存更改。 您所做的更改需要 要删除并重新创建以下表格。
答案 0 :(得分:68)
您只需在新列中设置默认值,即可添加它们。
alter table table_name
add column_name datetime not null
constraint DF_Default_Object_Name default (getdate())
或这个用于varchar字段。
alter table table_name
add column_name varchar(10) not null
constraint DF_Default_Object_Name default ('A')
如果在添加列后不需要,也可以删除默认值。
alter table table_name
drop constraint DF_Default_Object_Name
答案 1 :(得分:24)
如果您不想在列上放置默认值,您可以:
答案 2 :(得分:1)