我已经有一张由数据组成的表格。我需要修改表格以添加两个不为空的新列。我该如何做,而不会丢失任何现有的数据?将不可为空的列添加到SQL Server中的现有表中?
这里就是我试图(通过右键单击表并选择设计):
增加了新的栏目 'EmpFlag'(位,空), 'CreatedDate'(日期时间, 空)
更新表中的'EmpFlag'列,以获得一些有效值。 (只想在一个领域工作,所以我没有更新'CreatedDate'字段)
现在右键单击表,设计,并使其不为空。
当我试图保存,此错误消息出现了:
保存更改是不允许的。 您所做的更改要求 下列表格被删除并重新创建。
我认为这是SSMS设计工具的限制。试着用SQL语句来做:“alter table tablename alter column empFlag bit not null”。用这个运行一个新的查询,然后用真实名称更改表名。 – 2010-02-15 21:21:59
这与您所做更改的细节没有多大关系,而是反映了SSMS中的新默认行为 - 防止人们在不知不觉中对大型生产表进行灾难性更改,这些更改会在复制所需时间基本上使其脱机数据并重新填充表格。您可以关闭此工具工具>选项>设计器>表格+数据库设计师>防止保存更改...(取消选中此项)。但要对生产表进行这些更改时要非常小心。 – 2010-02-19 21:45:12