当我在SQL Server中创建一个表并保存它时,如果我尝试编辑表设计,比如将列类型从int更改为real,我会收到此错误:
不允许保存更改。您所做的更改需要删除并重新创建下表。您已对无法重新创建或启用的表进行了更改,该选项会阻止保存需要重新创建表的更改。
为什么我必须重新创建表格?我只想将数据类型从smallint
更改为real
。
该表是空的,直到现在我才使用它。
答案 0 :(得分:1326)
来自Save (Not Permitted) Dialog Box on MSDN:
保存(未允许)对话框会警告您保存更改 不允许,因为您所做的更改需要列出 要删除和重新创建的表。
以下操作可能需要重新创建表:
- 在表格中间添加新列
- 删除列
- 更改列可为空性
- 更改列的顺序
- 更改列的数据类型<<<<<
要更改此选项,请在工具菜单上点击选项,然后展开 设计人员,然后点击表格和数据库设计人员。 选择或清除阻止保存需要该表的更改 重新创建复选框。
另见
Colt Kwong博客文章:
Saving changes is not permitted in SQL 2008 Management Studio
答案 1 :(得分:184)
您使用SSMS吗?
如果是,请转到菜单工具>>选项>>设计人员并取消选中 “阻止保存需要重新创建表格的更改”
答案 2 :(得分:65)
防止保存需要重新创建表格的更改
五次快速点击
- 工具强>
- 选项强>
- 的设计者强>
- 防止保存需要重新创建表格的更改
- 确定即可。
醇>保存后,重复此过程以重新勾选此框。这可以防止意外数据丢失。
进一步说明
默认情况下,SQL Server Management Studio会阻止删除表,因为删除表时数据内容会丢失。*
在表设计视图中更改列的数据类型时,保存更改时,数据库会在内部删除表,然后重新创建新表。
*由于您的桌子是空的,因此您的具体情况不会造成后果。我完全提供这个解释,以提高您对程序的理解。
答案 3 :(得分:23)
要更改“需要重新创建表格”选项的“阻止保存更改”,请执行以下步骤:
打开SQL Server Management Studio(SSMS)。 在“工具”菜单上,单击“选项”。
在“选项”窗口的导航窗格中,单击“设计器”。
选中或清除“禁止保存需要重新创建表的更改”复选框,然后单击“确定”。
注意:如果禁用此选项,则在保存表时您不会收到警告,表明您所做的更改已更改了表的元数据结构。在这种情况下,保存表时可能会丢失数据。
答案 4 :(得分:20)
通过以下步骤可以在5秒内修复非常简单的设置问题
要允许您在更改表后保存更改,请按照以下步骤进行SQL设置:
答案 5 :(得分:17)
点击顶部菜单中的工具 从下拉列表中选择选项。现在,您可以选择位于左侧菜单栏中的设计师选项。取消选中阻止保存需要重新创建表格的更改选项。单击“确定”按钮。
答案 6 :(得分:12)
答案 7 :(得分:7)
可以在 Microsoft SQL Server 中轻松更改。
- 打开Microsoft SQL Server Management Studio 2008
- 点击工具菜单
- 点击选项
- 选择设计师
- 取消选中“防止保存需要重新创建表的更改”
- 点击确定
答案 8 :(得分:6)
从this link复制 “...重要我们强烈建议您不要通过关闭”禁止保存需要重新创建表格的更改“选项来解决此问题。有关关闭此选项的风险的详细信息,请参阅”更多信息“部分。''
“...要解决此问题,请使用Transact-SQL语句对表的元数据结构进行更改。有关其他信息,请参阅SQL Server Books Online中的以下主题
例如,要在名为MyTable的表中更改datetime类型的MyDate列以接受NULL值,您可以使用:
alter table MyTable alter column MyDate7 datetime NULL“
答案 9 :(得分:6)
如果有人在这里也没注意(像我一样):
对于Microsoft SQL Server 2012,在选项对话框中,有一个偷偷摸摸的小复选框,表示隐藏所有其他设置。虽然我得说我一直都错过了这个小怪物!!!
在那之后,你可以继续执行步骤,设计师,取消选中以防止挽救等等等等......
答案 10 :(得分:4)
答案 11 :(得分:1)
1)打开顶部的工具
2)从Picklist中选择选项
3)现在进入弹出窗口,您现在可以从左侧菜单列表中选择设计器选项。
4)现在防止需要取消选中需要重新创建表的保存更改。 现在点击“确定”。
答案 12 :(得分:1)
从“工具”菜单中,单击“选项”,从侧面菜单中选择“设计器”,然后取消选中以防止可能导致重新创建表格的更改。然后保存更改
答案 13 :(得分:0)
如果您无法在列表中看到“防止需要重新创建表的保存更改” The image
您需要启用更改跟踪。
答案 14 :(得分:0)
如果使用sql server Management Studio,请转到 工具>>选项>>设计器,然后取消选中“防止保存需要重新创建表的更改” 与我合作
答案 15 :(得分:0)
实际上,您被SSMS而非SQL Server阻止了。
因此解决方案是更改SSMS的设置或使用SQL查询。