SQL server修改表错误提示:“阻止保存需要重新创建表的更改”
解决方法如下:
- 打开 SQL Server Management Studio(SSMS)。
- 在“工具”菜单上,单击“选项”。
- 在选项窗口的导航窗格中,单击设计器。
- 选中或取消选中阻止保存需要重新创建表的更改复选框,然后单击确定。
备注!
如果禁用此选项,则在保存表时不会收到所做更改已更改表的元数据结构的警告。 在这种情况下,保存表时可能会发生数据丢失
关闭“阻止保存需要重新创建表的更改”选项的风险
虽然关闭此选项有助于避免重新创建表,但也可能导致更改丢失。 例如,假设在 SQL Server 中启用“更改跟踪”功能来跟踪对表所做的更改。 执行导致重新创建表的操作时,会收到症状部分中提到的错误消息。 但是,如果关闭此选项,则在重新创建表时会删除现有的更改跟踪信息。 因此,建议不要通过关闭此选项来解决此问题。
若要确定是否为表启用了“更改跟踪”功能,请执行以下操作:
- 在 SQL Server Management Studio 中,在“对象资源管理器”中找到表。
- 右键单击表,然后单击“属性”。
- 在“表属性”对话框中,单击“更改跟踪”。 如果“更改跟踪”项的值为“真”,则表已启用了此选项。 如果值为“假”,则表示已禁用此选项。
- 启用该Change Tracking功能后,使用 Transact-SQL 语句更改表的元数据结构。
重现问题的步骤
- 在 SQL Server Management Studio 中,在“表设计器”工具中创建包含主键的表。
- 右键单击包含此表的数据库,然后单击“属性”。
- 在“数据库属性”对话框中,单击“更改跟踪”。
- 将“更改跟踪”项的值设置为“True”,然后单击“确定”。
- 右键单击此表,然后单击“属性”。
- 在“表属性”对话框中,单击“更改跟踪”。
- 将“更改跟踪”项的值设置为“True”,然后单击“确定”。
- 在“工具”菜单上,单击“选项”。
- 在“选项”对话框中,单击“设计器”。
- 单击以选中“防止保存需要重新创建表的更改”复选框,然后单击“确定”。
- 在“表设计器”工具中,更改现有列上的“允许为 Null”设置。
- 尝试将更改保存到表中。
版权归原作者 fpl1116 所有, 如有侵权,请联系我们删除。