295

如果我想保存以前保存在 SQL Server Management Studio 中的表中的任何更改(表中没有数据),我会收到一条错误消息:

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

什么可以防止表格被轻松编辑?或者,SQL Server Management Studio 是否需要重新创建表进行编辑?它是什么 - 这个“选项阻止保存更改”

4

6 回答 6

636

进入工具 -> 选项 -> 设计器 -> 取消选中“防止保存需要重新创建表的更改”。瞧。

发生这种情况是因为有时需要删除并重新创建表才能更改某些内容。这可能需要一段时间,因为所有数据都必须复制到临时表中,然后重新插入新表中。由于默认情况下 SQL Server 不信任您,因此您需要说“好的,我知道我在做什么,现在让我做我的工作”。

于 2009-12-28T11:48:47.173 回答
125

工具 | 选项 | 设计师 | 表和数据库设计器

取消选中“防止保存需要重新创建表的更改”选项。

于 2012-09-25T12:07:33.850 回答
71

若要解决此问题,请使用 SQL 语句对表的元数据结构进行更改。

启用“防止保存需要重新创建表的更改”选项时会出现此问题。

来源:当您尝试在 SQL Server 2008 中保存表时出现错误消息:“不允许保存更改”

于 2009-12-28T11:47:43.210 回答
16

而不是取消选中该框(一个糟糕的解决方案),您应该停止以这种方式编辑数据。如果必须更改数据,请使用脚本进行更改,以便您可以轻松地将其移植到生产环境并使其处于源代码控制之下。这也使得在生产下推到开发后更容易刷新测试更改,以使开发人员能够处理更新的数据。

于 2009-12-28T21:34:52.900 回答
16

去 SSMS 试试这个

菜单>>工具>>选项>>设计器>>取消选中“防止保存需要重新创建表的更改”。

这是一个很好的解释:http: //blog.sqlauthority.com/2009/05/18/sql-server-fix-management-studio-error-saving-changes-in-not-permitted-the-changes -you-have-made-require-the-following-tables-to-be-dropped-and-re-created-you-have-either-made-changes-to-a-tab/

于 2014-10-29T07:31:26.120 回答
14

您可以在 SQL Server Management Studio 的表编辑器中非常轻松且直观地进行许多更改,实际上需要 SSMS 在后台删除表并从头开始重新创建它。即使是像重新排序列这样简单的事情也无法在标准 SQL DDL 语句中表达——SSMS 所能做的就是删除并重新创建表。

此操作可能 a) 在大型表上非常耗时,或者 b) 甚至可能由于各种原因(如 FK 约束和其他东西)而失败。因此,SQL Server 2008 中的 SSMS 引入了其他答案已经确定的新选项。

起初阻止此类更改可能看起来有悖常理——而且这对开发服务器来说肯定是一件令人讨厌的事情。但是在生产服务器上,此选项及其防止此类更改的默认值成为潜在的救星!

于 2009-12-28T12:38:28.200 回答