保存更改被禁止。您所做的更改需要删除并重新创建以下表格。

24
当我尝试修改表格数据类型时,SQL管理工具会显示:“不允许保存更改。你所做的更改需要删除并重新创建下列表格。”这样可怕的提示信息。我已经尝试使用T-SQL进行修改,并且成功了,但是为什么不能使用设计模式呢?我正在使用SQL Server 2008 R2。

1
这里有一个答案:https://dev59.com/lGw15IYBdhLWcg3wIYO_ - Giacomo Degli Esposti
表结构的更改应该被脚本化并保存在源代码控制中,就像所有其他代码一样。不要使用设计工具进行此操作。Alter table 不需要删除和重新创建表,而设计工具则需要。 - HLGEM
3个回答

66

我强烈建议您使用T-SQL进行更改,或者至少在提交更改之前预览设计师生成的脚本。但是,如果您想在设计师中完成此操作,可以通过转到“工具…选项…设计师..表格和数据库设计师..”并取消选中“防止保存需要重新创建表格的更改”来关闭该锁定。

默认情况下启用该锁定是有原因的:它可以防止您提交由设计师混淆的某些更改。

编辑:如下面评论中所述,除非禁用锁定,否则无法预览更改。我的意思是,如果您想使用表格设计师在禁用此功能的表格上工作,则应始终在提交更改之前预览更改。总之,选项如下:

  • 最佳流程:使用T-SQL
  • 不太好:禁用锁定,使用表格设计师,并始终预览更改
  • 疯狂的想法:点击一些按钮。

2
你能补充一下如何“预览设计师生成的脚本”吗?右键单击并生成脚本会再次尝试保存。这有什么意义呢? - makhdumi

28

要更改"Prevent saving changes that require the table re-creation"选项,请按照以下步骤操作: 打开SQL Server Management Studio (SSMS)。 在“工具”菜单上,点击“选项”。 在“选项”窗口的导航面板中,点击“设计师”。 选择或清除“Prevent saving changes that require the table re-creation”复选框,然后点击“确定”。


1

仅补充Stuart Ainsworth所说的,您可以在编辑后右键单击SSMS设计窗口并选择“生成更改脚本...”选项,以生成并查看设计器为您的更改创建的脚本。


5
如果锁还在的话,这样做会导致相同的错误。一旦锁被解除,它就能正常工作了。 - RyanfaeScotland

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