在SQL Server Management Studio中编辑表后保存更改

时间:2009-12-28 11:43:21

标签: sql sql-server ssms database-table

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

  

不允许保存更改。你所做的改变需要   要删除并重新创建的表。你要么做了   更改为无法重新创建或启用该选项的表   防止保存需要重新创建表的更改。

什么可以防止表格被轻易编辑?或者,这是SQL Server Management Studio要求重新创建表进行编辑的常用方法吗?它是什么 - 这个“选项防止保存更改”

7 个答案:

答案 0 :(得分:518)

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

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

答案 1 :(得分:107)

工具>选项

enter image description here

取消选中上面的选项

答案 2 :(得分:71)

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

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

来源:Error message when you try to save a table in SQL Server 2008: "Saving changes is not permitted"

答案 3 :(得分:15)

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

答案 4 :(得分:14)

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

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

起初看起来反直觉可能会阻止这种变化 - 这对开发服务器来说肯定是一种麻烦。但是在生产服务器上,此选项及其防止此类更改的默认值将成为一种潜在的救命!

答案 5 :(得分:14)

转到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/

答案 6 :(得分:6)

关闭此选项会有风险。如果您启用了更改跟踪(表格),则可能会丢失更改。

克里斯

http://chrisbarba.wordpress.com/2009/04/15/sql-server-2008-cant-save-changes-to-tables/