不允许保存更改的错误消息

您所在的位置:网站首页 无法保存对parameters权限所作的更改 不允许保存更改的错误消息

不允许保存更改的错误消息

2023-06-17 21:09| 来源: 网络整理| 查看: 265

SSMS 中不允许保存更改的错误消息 项目 03/02/2023

本文可帮助您解决在尝试将表保存在 SQL Server Management Studio (SSMS) 时收到错误消息的问题。

原始产品版本:SQL Server 原始 KB 编号: 956176

症状

在 SQL Server management Studio 中使用设计器对表进行更改后尝试保存时,可能会收到以下错误消息:

不允许保存更改。 所做的更改要求删除并重新创建以下表。 您已对无法重新创建的表进行了更改,或者启用了阻止保存需要重新创建表的更改的选项。

对表进行下列一项或多项更改时,会出现此问题:

更改列的允许 Null 设置。 重新排序表中的列。 更改列数据类型。 添加新列。 更改filegroup表或其text/image数据。 原因

出现此问题的原因是:默认情况下,SQL Server Management Studio 中启用了阻止保存需要重新创建表的更改的选项。

更改表以便更改表的元数据结构,然后保存表时,必须根据这些更改重新创建表。 这可能会导致元数据丢失,并在重新创建表期间直接丢失数据。 如果在 SQL Server Management Studio (SSMS) 选项窗口的设计器部分启用了阻止保存需要重新创建表的更改的选项,则会收到“症状”部分中提到的错误消息。

解决方法

若要解决此问题,请使用 ALTER TABLETransact-SQL 语句对表的元数据结构进行更改。

例如,若要在名为 MyTable 的表中更改日期时间类型的 MyDate 列以接受空值,您可以使用:

alter table MyTable alter column MyDate7 datetime NULL

重要

强烈建议不要通过关闭“阻止保存需要重新创建表的更改”的选项来解决此问题。 要了解关闭此选项相关风险的详细信息,请参阅“详细信息”部分。

更多信息

若要更改阻止保存需要重新创建表的更改的选项 ,请执行以下操作:

打开 SQL Server Management Studio。

在“工具”菜单上,单击“选项”。

在选项窗口的导航窗格中,单击设计器。

选中或取消选中阻止保存需要重新创建表的更改复选框,然后单击确定。

注意

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

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

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

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

在 SQL Server Management Studio 中,在“对象资源管理器”中找到表。 右键单击表,然后单击“属性”。 在“表属性”对话框中,单击“更改跟踪”。 如果“更改跟踪”项的值为“真”,则表已启用了此选项。 如果值为“假”,则表示已禁用此选项。

启用该Change Tracking功能后,使用 Transact-SQL 语句更改表的元数据结构。

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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3