"您所做的更改要求删除并重新创建以下表"报错的原因以及解决办法

不推荐的解决办法:工具菜单----选项----Designers(设计器)----阻止保存要求重新创建表的更改  取消勾选即可。

推荐的办法:使用alter语句修改表结构,参见文章下面的替代方法

产生这个问题的原因:参见文章下面的原因以及更多信息


原文链接

https://social.msdn.microsoft.com/forums/zh-CN/ab33831a-44f0-449e-acf5-e9c230b629b0

https://support.microsoft.com/zh-cn/kb/956176


症状

当您使用数据定义语言 (DDL) 来修改一个表,然后再将 Microsoft SQL Server 2008年中保存表时,可能会收到以下消息:
不允许保存更改。 所做的更改要求下表,以删除并重新创建。 必须进行不能重新创建或启用阻止保存更改的选项的表的更改要求重新创建表。

原因

启用阻止保存的更改要求重新创建表的选项,并对表进行一个或多个以下更改时,将发生此问题:
  • 您可以更改某一列允许 null 值设置。
  • 对表中的列进行重新排序。
  • 您可以更改列的数据类型。
  • 添加一个新列。
在更改表,以便更改元数据结构的表中,然后保存表时,表必须重新创建基于这些更改。在重新创建表的过程,这可能会导致丢失的元数据和数据的直接损失。如果启用了SQL Server 管理 Studio (SSMS) 选项窗口的设计器部分中保存的更改,要求重新创建表的阻止选项,您将收到在"症状"一节中提到的错误消息。

替代方法

要变通解决此问题,请使用事务处理 SQL 语句所做的更改对表的元数据结构。有关其他信息请参阅 SQL Server 联机丛书中的下列主题:

http://msdn.microsoft.com/zh-cn/library/ms190273.aspx

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

alter table MyTable alter column MyDate7 datetime NULL

重要:我们强烈建议您不能解决这个问题通过关闭阻止保存的更改要求重新创建表的选项。关闭该选项的风险有关的详细信息,请参阅"更多信息"一节。

更多信息

若要更改保存的更改,要求重新创建表的阻止选项,请执行以下步骤:
  1. 打开 SQL Server 管理 Studio (SSMS)。
  2. 工具菜单上,单击选项
  3. 选项窗口的导航窗格中,单击设计器
  4. 选择或清除阻止保存的更改,要求重新创建表复选框,然后单击确定
注意:如果您禁用此选项,会警告您保存该表时您所做的更改已更改的表的元数据结构。在这种情况下,当您保存表时,可能会发生数据丢失。

关闭"保存更改,要求重新创建表的阻止"选项的风险

虽然关闭该选项可以帮助您避免重新创建一个表,则还可能会丢失的更改。例如,假设您启用跟踪表更改的 SQL Server 2008年中的修订功能。当您执行的操作会导致重新创建表时,您会收到在"症状"一节中提到的错误消息。但是,如果关闭此选项时,重新创建表时,会删除现有的更改跟踪信息。因此,我们建议您不能解决此问题的关闭选项。

要确定是否为表启用更改跟踪功能,请执行以下步骤:
  1. 在 SQL Server 管理 Studio 中,在对象资源管理器中查找的表。
  2. 用鼠标右键单击表,然后单击属性
  3. 表格属性对话框中,单击修订
如果更改跟踪项的值为True,则为表启用此选项。如果值为False,则此选项被禁用。

启用更改跟踪功能时,使用事务处理 SQL 语句来更改表的元数据结构。

重现问题的步骤

  1. 在 SQL Server 管理 Studio 中,创建一个包含表设计器工具中的主键的表。
  2. 用鼠标右键单击包含此表的数据库,然后单击 属性.
  3. 在中 数据库属性 对话框中,单击 更改跟踪.
  4. 设置的值 更改跟踪 项目 则返回 true然后单击 确定.
  5. 表中,用鼠标右键单击,然后单击 属性.
  6. 在中 表属性 对话框中,单击 更改跟踪.
  7. 设置的值 更改跟踪 项目 则返回 true然后单击 确定.
  8. 在上 工具 菜单上,单击 选项.
  9. 在中 选项 对话框中,单击 设计器.
  10. 单击以选中 防止保存要求重建表的更改 复选框,然后单击 确定。
  11. 在表设计器工具中,更改 允许空值 将现有的列。
  12. 请尝试更改保存到表。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值