什么原因导致表格不能轻松地编辑呢?或者,SQL Server Management Studio需要重新创建表吗?这个“选项:防止保存更改”指的是什么?无法保存更改。您所做的更改需要删除并重新创建以下表。您已对无法重新创建的表进行了更改或启用了“防止保存需要重新创建表格的更改”的选项。
什么原因导致表格不能轻松地编辑呢?或者,SQL Server Management Studio需要重新创建表吗?这个“选项:防止保存更改”指的是什么?无法保存更改。您所做的更改需要删除并重新创建以下表。您已对无法重新创建的表进行了更改或启用了“防止保存需要重新创建表格的更改”的选项。
进入工具 -> 选项 -> 设计师 -> 取消选中 "防止保存需要重新创建表格的更改"。完成。
这是因为有时需要删除并重新创建一个表格才能进行更改。这可能需要一段时间,因为所有数据都必须被复制到临时表中,然后重新插入到新表中。由于SQL Server默认不信任您,您需要说“好的,我知道我在做什么,现在让我去做我的工作。”
工具 | 选项 | 设计器 | 表格和数据库设计器
取消勾选选项“防止保存需要重新创建表格的更改”。
在 SSMS 中尝试以下操作:
菜单 >> 工具 >> 选项 >> 设计工具 >> 取消勾选“阻止需要重建表的更改”的选项。
不要取消复选框(这是一个不好的解决方案),你应该停止以那种方式编辑数据。如果必须更改数据,则应使用脚本进行更改,以便您可以轻松地将其移植到生产环境并使其受源代码控制。这也使得在将生产环境推送到开发环境后刷新测试更改更容易,从而使开发人员能够使用更新的数据进行工作。
在SQL Server Management Studio中的表格编辑器中,许多你可以轻松可视化完成的更改实际上需要SSMS在后台删除表并从头重新创建。即使像重新排序列这样简单的事情也不能用标准的SQL DDL语句来表示,所有SSMS能做的就是删除并重新创建表。
这种操作可能a)在大型表上非常耗时,或者b)甚至由于外键约束等各种原因而失败。因此,在SQL Server 2008中,SSMS引入了其他答案已经确定的新选项。
一开始防止这种更改可能看起来有些违反直觉-在开发服务器上肯定很烦人。但在生产服务器上,这个选项及其默认值防止这种更改成为潜在的救命稻草!
重现问题的步骤
在SQL Server Management Studio中,使用Table Designer工具创建一个包含主键的表。 右键单击包含此表的数据库,然后单击属性。 在数据库属性对话框中,单击更改跟踪。 将更改跟踪项目的值设置为True,然后单击确定。 右键单击表,然后单击属性。 在表属性对话框中,单击更改跟踪。 将更改跟踪项目的值设置为True,然后单击确定。 在工具菜单上,单击选项。 在选项对话框中,单击设计人员。 单击以选择防止保存需要重新创建表的更改复选框,然后单击确定。 在Table Designer工具中,更改现有列的允许空值设置。 尝试将更改保存到表中。