如果我想保存以前保存在 SQL Server Management Studio 中的表中的任何更改(表中没有数据),我会收到一条错误消息:
不允许保存更改。您所做的更改需要删除并重新创建以下表。您对无法重新创建的表进行了更改,或者启用了选项阻止保存需要重新创建表的更改。
什么可以防止表格被轻松编辑?或者,SQL Server Management Studio 是否需要重新创建表进行编辑?它是什么 - 这个“选项阻止保存更改”?
如果我想保存以前保存在 SQL Server Management Studio 中的表中的任何更改(表中没有数据),我会收到一条错误消息:
不允许保存更改。您所做的更改需要删除并重新创建以下表。您对无法重新创建的表进行了更改,或者启用了选项阻止保存需要重新创建表的更改。
什么可以防止表格被轻松编辑?或者,SQL Server Management Studio 是否需要重新创建表进行编辑?它是什么 - 这个“选项阻止保存更改”?
进入工具 -> 选项 -> 设计器 -> 取消选中“防止保存需要重新创建表的更改”。瞧。
发生这种情况是因为有时需要删除并重新创建表才能更改某些内容。这可能需要一段时间,因为所有数据都必须复制到临时表中,然后重新插入新表中。由于默认情况下 SQL Server 不信任您,因此您需要说“好的,我知道我在做什么,现在让我做我的工作”。
工具 | 选项 | 设计师 | 表和数据库设计器
取消选中“防止保存需要重新创建表的更改”选项。
若要解决此问题,请使用 SQL 语句对表的元数据结构进行更改。
启用“防止保存需要重新创建表的更改”选项时会出现此问题。
而不是取消选中该框(一个糟糕的解决方案),您应该停止以这种方式编辑数据。如果必须更改数据,请使用脚本进行更改,以便您可以轻松地将其移植到生产环境并使其处于源代码控制之下。这也使得在生产下推到开发后更容易刷新测试更改,以使开发人员能够处理更新的数据。
去 SSMS 试试这个
菜单>>工具>>选项>>设计器>>取消选中“防止保存需要重新创建表的更改”。
您可以在 SQL Server Management Studio 的表编辑器中非常轻松且直观地进行许多更改,实际上需要 SSMS 在后台删除表并从头开始重新创建它。即使是像重新排序列这样简单的事情也无法在标准 SQL DDL 语句中表达——SSMS 所能做的就是删除并重新创建表。
此操作可能 a) 在大型表上非常耗时,或者 b) 甚至可能由于各种原因(如 FK 约束和其他东西)而失败。因此,SQL Server 2008 中的 SSMS 引入了其他答案已经确定的新选项。
起初阻止此类更改可能看起来有悖常理——而且这对开发服务器来说肯定是一件令人讨厌的事情。但是在生产服务器上,此选项及其防止此类更改的默认值成为潜在的救星!