【SQL server修改表错误提示:“阻止保存需要重新创建表的更改”】
作者:mmseoamin日期:2023-12-14

SQL server修改表错误提示:“阻止保存需要重新创建表的更改”

解决方法如下:

  1. 打开 SQL Server Management Studio(SSMS)。
  2. 在“工具”菜单上,单击“选项”。
  3. 在选项窗口的导航窗格中,单击设计器。
  4. 选中或取消选中阻止保存需要重新创建表的更改复选框,然后单击确定。

【SQL server修改表错误提示:“阻止保存需要重新创建表的更改”】,在这里插入图片描述,第1张

备注!

如果禁用此选项,则在保存表时不会收到所做更改已更改表的元数据结构的警告。 在这种情况下,保存表时可能会发生数据丢失

关闭“阻止保存需要重新创建表的更改”选项的风险

虽然关闭此选项有助于避免重新创建表,但也可能导致更改丢失。 例如,假设在 SQL Server 中启用“更改跟踪”功能来跟踪对表所做的更改。 执行导致重新创建表的操作时,会收到症状部分中提到的错误消息。 但是,如果关闭此选项,则在重新创建表时会删除现有的更改跟踪信息。 因此,建议不要通过关闭此选项来解决此问题。

若要确定是否为表启用了“更改跟踪”功能,请执行以下操作:

  1. 在 SQL Server Management Studio 中,在“对象资源管理器”中找到表。
  2. 右键单击表,然后单击“属性”。
  3. 在“表属性”对话框中,单击“更改跟踪”。 如果“更改跟踪”项的值为“真”,则表已启用了此选项。 如果值为“假”,则表示已禁用此选项。
  4. 启用该Change Tracking功能后,使用 Transact-SQL 语句更改表的元数据结构。

重现问题的步骤

  1. 在 SQL Server Management Studio 中,在“表设计器”工具中创建包含主键的表。
  2. 右键单击包含此表的数据库,然后单击“属性”。
  3. 在“数据库属性”对话框中,单击“更改跟踪”。
  4. 将“更改跟踪”项的值设置为“True”,然后单击“确定”。
  5. 右键单击此表,然后单击“属性”。
  6. 在“表属性”对话框中,单击“更改跟踪”。
  7. 将“更改跟踪”项的值设置为“True”,然后单击“确定”。
  8. 在“工具”菜单上,单击“选项”。
  9. 在“选项”对话框中,单击“设计器”。
  10. 单击以选中“防止保存需要重新创建表的更改”复选框,然后单击“确定”。
  11. 在“表设计器”工具中,更改现有列上的“允许为 Null”设置。
  12. 尝试将更改保存到表中。