如果我想保存以前保存在SQL Server Management Studio中的表中的任何更改(表中没有数据),我会收到一条错误消息:
不允许保存更改。你所做的改变需要 要删除并重新创建的表。你要么做了 更改为无法重新创建或启用该选项的表 防止保存需要重新创建表的更改。
什么可以防止表格被轻易编辑?或者,这是SQL Server Management Studio要求重新创建表进行编辑的常用方法吗?它是什么 - 这个“选项防止保存更改”?
答案 0 :(得分:518)
进入工具 - >选项 - > Designers->取消选中“禁止保存需要重新创建表的更改”。瞧。
发生这种情况是因为有时需要删除并重新创建表以便更改某些内容。这可能需要一段时间,因为必须将所有数据复制到临时表,然后重新插入新表中。由于SQL Server默认不信任你,你需要说“好的,我知道我在做什么,现在让我做我的工作。”
答案 1 :(得分:107)
工具>选项
取消选中上面的选项
答案 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并试试这个
菜单>>工具>>选项>>设计师>>取消选中“禁止保存需要重新创建表格的更改”。
答案 6 :(得分:6)
关闭此选项会有风险。如果您启用了更改跟踪(表格),则可能会丢失更改。
克里斯
http://chrisbarba.wordpress.com/2009/04/15/sql-server-2008-cant-save-changes-to-tables/