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

942
在SQL Server中创建表并保存后,如果我尝试编辑表设计,如将列类型从int更改为real,则会出现以下错误:
保存更改不被允许。您所做的更改需要删除并重新创建以下表。您已经对无法重新创建的表进行了更改或启用了防止保存需要重新创建表的更改选项。
为什么我必须重新创建表呢?我只是想将数据类型从smallint更改为real。
该表为空,并且我还没有使用它。

15个回答

2

1) 打开顶部的工具。
2) 从下拉列表中选择选项。
3) 弹出窗口现在出现,您可以从左侧菜单列表中选择设计师选项。
4) 现在需要取消保存更改以避免需要重新创建表。 现在点击确定。


1
如果您使用SQL Server Management Studio,请转到“工具”>>“选项”>>“设计人员”,取消选中“防止保存需要重新创建表的更改”。这对我有用。

2
这只是许多现有答案的重复。 - Pang

1
从工具菜单中,点击选项,选择设计师选项并取消勾选防止更改可能导致重新创建表格的选项。然后保存更改。

0

如果您在列表中看不到“防止保存需要重新创建表”的选项,如图像所示

您需要启用更改跟踪。

  • 右键单击数据库,然后单击属性
  • 单击更改跟踪并启用它
  • 再次转到工具 -> 选项 -> 设计师并取消选中它。

0

实际上,你被SSMS阻止了而不是SQL Server。

解决方案可以是改变SSMS的设置或使用SQL查询。

使用SQL查询,您可以自由地进行更新。例如,如果您想向表中添加一个新列,可以像这样操作:

ALTER TABLE Customers ADD Email varchar(255) NOT NULL DEFAULT 'OK';

另一个选项是更改SSMS设置。请参考其他答案,因为许多人已经解释过了。


1
如果您能说明SSMS为什么会阻止该操作以及应更改哪些设置,这将对未来的用户非常有帮助。 - Kristianne Nerona
1
SSMS为了安全起见阻止了该操作,因为如果不阻止该操作,您可能会丢失对表的更改跟踪,或者操作可能需要很长时间才能完成。如果您对这两个事实都感到满意,那么您可以在禁用安全开关的情况下安全地使用SSMS中的“编辑表”功能。 - Geoff Griswald

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接