协慌网

登录 贡献 社区

SQL Server“不允许保存更改” 错误►防止保存需要重新创建表的更改

当我在 SQL Server 中创建表并将其保存时,如果尝试编辑表设计,例如将列类型从 int 更改为 real,则会出现此错误:

不允许保存更改。您所做的更改要求删除并重新创建下表。您已经对无法重新创建的表进行了更改,或者启用了该选项可防止保存需要重新创建表的更改。

为什么必须重新创建表?我只想将数据类型从smallint更改为real

该表是空的,直到现在我才使用它。

答案

MSDN 上的 “保存(不允许)” 对话框中

保存 (不允许)” 对话框警告您不允许保存更改,因为所做的更改要求删除并重新创建列出的表。

以下操作可能需要重新创建表:

  • 在表格中间添加新列
  • 删除列
  • 更改列为空
  • 更改列的顺序
  • 更改列的数据类型<<<<

若要更改此选项,请在 “ 工具”菜单上,单击 “ 选项” ,展开 “ 设计器” ,然后单击 “ 表和数据库设计器” 。选中或清除 “ 阻止保存需要重新创建表的更改”复选框。

另请参阅 Colt Kwong 博客条目:
SQL 2008 Management Studio 中不允许保存更改

您使用 SSMS 吗?

如果是,请转到菜单工具 >> 选项 >> 设计器,然后取消选中“防止保存需要重新创建表的更改”

防止保存需要重新创建表的更改

五次快速点击

防止保存需要五次单击即可重新创建表的更改

  1. 工具类
  2. 选件
  3. 设计者
  4. 防止保存需要重新创建表的更改
  5. 好吧

保存后,重复此步骤以重新勾选框。这可以防止意外数据丢失。

进一步说明

  • 默认情况下,SQL Server Management Studio 禁止删除表,因为删除表时,其数据内容会丢失。*

  • 在表 “设计” 视图中更改列的数据类型时,在保存更改时,数据库会在内部删除表,然后重新创建一个新表。

* 由于表为空,因此您的特定情况不会造成任何后果。我完全提供此解释以提高您对过程的理解。