【问题标题】:Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created [duplicate]不允许保存更改。您所做的更改需要删除并重新创建以下表格 [重复]
【发布时间】:2013-12-06 01:53:18
【问题描述】:

当我尝试更改表的数据类型时,我从 SQL Management Studion 收到这条可怕的消息:“不允许保存更改。您所做的更改需要删除并重新创建以下表”。我已经尝试通过 T-SQL 进行修改并且它工作了,但是为什么我不能通过设计模式来做呢?我正在使用 SQL Server 2008 R2。

【问题讨论】:

  • 对表结构的更改应该像所有其他代码一样被脚本化并保存在源代码管理中。切勿为此使用设计器。 Alter table 不需要删除和重新创建表,设计人员会这样做。

标签: sql sql-server-2008


【解决方案1】:

我强烈建议您使用 T-SQL 进行更改,或者至少在提交之前预览设计师生成的脚本。但是,如果您想在设计器中执行此操作,您可以通过转到工具...选项...设计器..表和数据库设计器..来关闭该锁定,然后取消单击“防止保存需要重新表的更改”创造”。

默认情况下锁定是有原因的;它可以防止您提交一些被设计者混淆的更改。

编辑:如以下评论中所述,除非禁用锁定,否则您无法预览更改。我的观点是,如果您想使用表格设计器来处理禁用此功能的表格,您应该确保在提交之前始终预览更改。简而言之,选项是:

  • 最佳过程:使用 T-SQL
  • 不好:禁用锁,使用表 设计师,总是预览变化
  • 疯狂谈话:点击一些按钮。

【讨论】:

  • 您能补充一下您应该如何“预览设计师生成的脚本”吗?右键单击并生成脚本尝试再次保存。有什么意义?
【解决方案2】:

要更改阻止保存需要重新创建表的更改选项,请按以下步骤操作: 打开 SQL Server 管理工作室 (SSMS)。 在工具菜单上,单击选项。 在选项窗口的导航窗格中,单击设计器。 选中或清除“阻止保存需要重新创建表的更改”复选框,然后单击“确定”。

【讨论】:

    【解决方案3】:

    添加 Stuart Ainsworth 所说的内容,您可以在 SSMS 设计器窗口中右键单击并在编辑后选择“生成更改脚本...”选项以生成和查看设计器为您创建的脚本变化。

    【讨论】:

    • 如果锁仍然打开,这样做会导致同样的错误。关闭后即可使用。
    猜你喜欢
    • 1970-01-01
    • 2017-06-15
    • 2021-11-30
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 2018-08-22
    相关资源
    最近更新 更多