可以列到SQL Server中的现有表?
我已经有一个由数据组成的表格。 我需要修改表格以添加两个不为空的新列。 我该如何做,而不会丢失任何现有的数据?
以下是我尝试的方法(通过右键单击表并选择设计):
添加了新列'EmpFlag'(bit,null),'CreatedDate'(datetime,null)
更新表中的'EmpFlag'列,以获得一些有效值。 (只想在一个领域工作,所以我没有更新'CreatedDate'字段)
现在右键单击表格,设计,并使其不为空。
当我尝试保存时,出现此错误消息:
不允许保存更改。 您所做的更改需要删除并重新创建以下表格 。
您只需在新列中设置一个默认值,这将允许您添加它们。
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
如果您不想在列上放置默认值,您可以:
添加新的NOT NULL列与默认值可以在下面的GUI中完成。 将现有的更改为NOT NULL似乎是另一回事。 我收到了同样的信息。 一种选择是创建一个新的NOT NULL列,并使用默认值替换旧列,然后将旧列数据复制到新列数据。