Sql Server“保存更改不允许”错误►阻止保存需要重新创build表的更改

当我在SQL Server中创build一个表并保存它时,如果我尝试编辑表devise,如将列types从int更改为real,则会出现以下错误:

保存更改是不允许的。 您所做的更改要求删除并重新创build下表。 您要么对无法重新创build的表进行更改,要么禁止保存需要重新创build表的更改的选项。

为什么我必须重新创build表格? 我只是想将数据types从smallint更改为real

桌子是空的,我到现在才使用它。

从MSDN上的“保存(不允许)”对话框中 :

保存 (不允许)”对话框将警告您不允许保存更改,因为您所作的更改要求删除和重新创build列出的表。

以下操作可能需要重新创build表格:

  • 在表格中间添加一个新列
  • 丢下一列
  • 改变列的可空性
  • 改变列的顺序
  • 更改列的数据types<<<<

要更改此选项,请在工具菜单上,单击选项 ,展开devise器 ,然后单击表和数据库devise器 。 选中或清除“ 保存要求重新创build表的更改”checkbox。

另见Colt Kwong Blog条目:
在SQL 2008 Management Studio中不允许保存更改

你使用SSMS吗?

如果是,转到菜单工具>>选项>>devise器,并取消选中“预防保存需要重新创build表的更改”

阻止保存需要重新创build表的更改

五个快速点击

防止保存需要重新创建表格的更改,只需点击五次即可

  1. 工具
  2. 选项
  3. devise师
  4. 阻止保存需要重新创build表的更改
  5. 好的

保存后,重复此过程重新勾选该框。 这安全 – 防止意外的数据丢失。

进一步解释

  • 默认情况下,SQL Server Management Studio将防止删除表,因为当删除表时,其数据内容将丢失。

  • 在devise视图中更改列的数据types时,保存更改时,数据库会在内部删除表,然后重新创build一个新表。

*由于您的表格是空的,您的具体情况不会造成任何后果。 我完全提供这个解释来提高你对程序的理解。

按照这些步骤,可以在5秒内固定的设定问题非常简单容易

为了让您在更改表后保存更改,请按照以下步骤进行sql设置:

  1. 打开Microsoft SQL Server Management Studio 2008
  2. 点击工具菜单选项,然后点击选项
  3. selectdevise师
  4. 取消选中“防止保存需要重新创build表格的更改”选项
  5. 点击OK
  6. 试着改变你的桌子
  7. 您的更改将按需要执行

去顶部菜单上的工具
从下拉菜单中select选项 。现在select位于菜单左侧的“ devise者”选项。 取消选中防止保存需要重新创build表的更改选项。 点击确定button。

要更改防止保存需要重新创build表的选项的更改,请按照下列步骤操作:

打开SQL Serverpipe理工作室(SSMS)。 在工具菜单上,单击选项。

在“选项”窗口的导航窗格中,单击“devise器”。

选中或清除“禁止保存需要重新创build表的更改”checkbox,然后单击“确定”。

注意 :如果禁用此选项,则在保存表时发生的更改不会更改表的元数据结构。 在这种情况下,保存表时可能会发生数据丢失。

在这里输入图像描述

工具►选项►devise器选项卡中取消勾选 Prevent saving changes that require table re-creation

SQL Server 2012示例:

在这里输入图像描述

以防万一有人在这里也不注意(像我一样):

对于Microsoft SQL Server 2012,在选项对话框中,有一个鬼鬼祟祟的小checkbox,显示隐藏所有其他设置。 虽然我不得不说,我已经错过了这个小怪物!

之后,你可以继续步骤,devise师,取消防止保存等等等等等等…

sneaky_check_box_in_option

从此链接复制“…重要我们强烈build议您通过closures”禁止保存需要重新创build表的选项“选项来解决此问题。有关closures此选项的风险的详细信息,请参阅”更多信息“部分”

“…要解决此问题,请使用Transact-SQL语句对表的元数据结构进行更改。有关其他信息,请参阅SQL Server联机丛书中的以下主题

例如,要更改名为MyTable的表中的types为datetime的MyDate列以接受NULL值,可以使用:

alter table MyTable alter column MyDate7 datetime NULL“

1)打开顶部的工具。
2)从选单中select选项。
3)现在出现popup窗口,您现在可以从左侧菜单列表中selectdevise者选项。
4)现在防止需要取消选中需要重新创build表的保存更改。 现在点击确定。

从“工具”菜单中,单击“选项”,从侧面菜单中select“devise器”,然后取消防止可能导致重新创build表的更改。 然后保存更改