首页 文章

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

提问于
浏览
223

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

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

有什么可以防止表格被轻易编辑?或者,这是SQL Server Management Studio要求重新创建表进行编辑的常用方法吗?这是什么 - 这个 "option Prevent saving changes"

7 回答

  • 106

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

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

    一开始可能看起来反直觉是为了防止这种变化 - 而且它在开发服务器上肯定是一种麻烦 . 但是在 生产环境 服务器上,此选项及其防止此类更改的默认值可以成为一种潜在的救命!

  • 13

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

    克里斯

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

  • 71

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

    启用 "Prevent saving changes that require table re-creation" 选项时会发生此问题 .

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

  • 6

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

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

  • 502

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

  • 14

    工具>选项

    enter image description here

    取消选中上面的选项

  • 14

    转到SSMS并试试这个

    Menu >> Tools >> Options >> Designers >> Uncheck “Prevent Saving changes that require table re-creation”.

    这是一个非常好的解释: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/

相关问题