Answers:
“ 保存(不允许)”对话框警告您不允许保存更改,因为您所做的更改要求删除并重新创建列出的表。
以下操作可能需要重新创建表:
- 在表格中间添加新列
- 删除列
- 更改列为空
- 更改列的顺序
- 更改列的数据类型 <<<<
若要更改此选项,请在“ 工具”菜单上,单击“ 选项”,展开“ 设计器”,然后单击“ 表和数据库设计器”。选择或清除阻止保存需要重新创建表的更改复选框。
另请参见Colt Kwong博客条目:
SQL 2008 Management Studio中不允许保存更改
您使用SSMS吗?
如果是,请转到菜单工具>>选项>>设计器,然后取消选中“防止保存需要重新创建表的更改”
防止保存需要重新创建表的更改
五次快速点击
- 工具类
- 选件
- 设计者
- 防止保存需要重新创建表的更改
- OK。
保存后,重复此步骤以重新选中该框。这可以防止意外数据丢失。
进一步说明
默认情况下,SQL Server Management Studio禁止删除表,因为删除表时,其数据内容会丢失。*
在表设计视图中更改列的数据类型时,在保存更改时,数据库会在内部删除表,然后重新创建一个新表。
*由于表为空,因此您的特定情况不会造成任何后果。我完全提供此解释以提高您对过程的理解。
若要更改防止保存需要表重新创建的更改选项,请按照下列步骤操作:
打开SQL Server Management Studio(SSMS)。在工具菜单上,单击选项。
在“选项”窗口的导航窗格中,单击“设计器”。
选中或清除“阻止保存需要重新创建表的更改”复选框,然后单击“确定”。
注意:如果禁用此选项,则在保存表时不会警告您所做的更改已更改表的元数据结构。在这种情况下,保存表时可能会发生数据丢失。
这可以在Microsoft SQL Server中轻松更改。
- 打开Microsoft SQL Server Management Studio 2008
- 点击工具菜单
- 点击选项
- 选择设计师
- 取消选中“防止保存需要重新创建表的更改”
- 点击确定
从此链接复制 “ ...重要提示我们强烈建议您不要通过关闭“防止保存需要重新创建表的更改”选项来解决此问题。有关关闭此选项的风险的更多信息,请参阅“更多信息”一节。
“ ...要变通解决此问题,请使用Transact-SQL语句对表的元数据结构进行更改。有关其他信息,请参见以下主题。 SQL Server联机丛书中
例如,要更改名为MyTable的表中datetime类型的MyDate列以接受NULL值,可以使用:
更改表MyTable更改列MyDate7 datetime NULL“
在“工具”菜单上,单击“选项”,从侧面菜单中选择“设计器”,然后取消选中可导致重新创建表的更改。然后保存更改
如果您使用sql server Management Studio,请转到工具>>选项>>设计器,然后取消选中“防止保存需要重新创建表的更改”。