首页 文章

Sql Server 'Saving changes is not permitted'错误►防止保存需要重新创建表的更改

提问于
浏览
639

当我在SQL Server中创建一个表并保存它时,如果我尝试编辑表设计,比如将列类型从int更改为real,我会收到以下错误:

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

为什么我要重新创建表?我只想将数据类型从 smallint 更改为 real .

该表是空的,直到现在我才使用它 .

15 回答

  • 63

    防止需要重新创建表的保存更改五次快速单击工具选项设计器防止保存需要重新创建表的更改 . 保存后,重复该过程以重新勾选该框 . 这可以防止意外数据丢失 .

    Further explanation

    • 默认情况下,SQL Server Management Studio会阻止删除表,因为删除表时,其数据内容将丢失 . *

    • 在表设计视图中更改列的数据类型时,保存更改时,数据库会在内部删除表,然后重新创建新表 .

    *由于您的 table 是空的,您的具体情况不会造成后果 . 我完全提供这个解释,以提高您对程序的理解 .

  • 1

    来自Save (Not Permitted) Dialog Box on MSDN

    “保存(不允许)”对话框警告您不允许保存更改,因为您所做的更改需要删除并重新创建列出的表 . 以下操作可能需要重新创建表:将新列添加到表的中间删除列更改列可为空性更改列的顺序更改列的数据类型<<<<更改此选项,在“工具”菜单上,单击“选项”,再展开“设计器”,然后单击“表和数据库设计器” . 选中或清除“禁止保存需要重新创建表的更改”复选框 .

    另见Colt Kwong博客文章:
    Saving changes is not permitted in SQL 2008 Management Studio

  • 22

    你使用SSMS吗?

    如果是,请转到菜单 Tools >> Options >> Designers 并取消选中 “Prevent Saving changes that require table re-creation”

  • 12

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

    打开SQL Server Management Studio(SSMS) . 在“工具”菜单上,单击“选项” .

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

    选中或清除“禁止保存需要重新创建表的更改”复选框,然后单击“确定” .

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

    enter image description here

  • 0

    It is very easy and simple setting problem that can be fixed in 5 seconds by following these steps

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

    • 打开Microsoft SQL Server Management Studio 2008

    • 单击“工具”菜单选项,然后单击“选项”

    • 选择设计师

    • 取消选中"prevent saving changes that require table re-creation"选项

    • 单击“确定”

    • 尝试改变你的 table

    • 您的更改将根据需要执行

  • 1269

    继续 Tool 位于顶部菜单 .
    从下拉列表中选择 options . 现在有一个弹出窗口,选择位于菜单左侧块的 Designers 选项 . 取消选中选项 Prevent saving changes that require table re-creation . 单击“确定”按钮 .

  • 17

    Un-tick Prevent saving changes that require table re-creation 框中的 Prevent saving changes that require table re-creation 框 .

    SQL Server 2012示例:

    enter image description here

  • 19

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

    对于Microsoft SQL Server 2012,在选项对话框中,有一个偷偷摸摸的小复选框,表示隐藏所有其他设置 . 虽然我得说我一直都想念那个小怪物!

    在那之后,你可以继续执行步骤,设计师,取消选中阻止保存等等等等...

    sneaky_check_box_in_option

  • 6

    工具>>选项>>设计器并取消选中“防止保存需要重新创建表的更改”:

    Description in Photos format

  • 174

    复制自this link " ... Important We strongly recommend that you do not work around this problem by turning off the Prevent saving changes that require table re-creation option. For more information about the risks of turning off this option, see the "更多信息“部分 . ”

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

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

    alter table MyTable alter column MyDate7 datetime NULL“

  • 3

    这可以在 Microsoft SQL Server 中轻松更改 .

    打开Microsoft SQL Server Management Studio 2008单击“工具”菜单单击“选项”选择“设计器”取消选中“禁止保存需要重新创建表的更改”单击“确定”

    enter image description here

  • 4

    1)打开顶部的工具 .
    2)从Picklist中选择选项 .
    3)现在进入弹出窗口,您现在可以从左侧菜单列表中选择设计器选项 .
    4)现在可以防止需要取消选中需要重新创建表的保存更改 . Now Click OK.

  • 1

    来自单击“工具”菜单,单击“选项”,从侧面菜单中选择“设计器”,然后取消选中,以防止可能导致重新创建表的更改 . 然后保存更改

  • 2

    如果你不能在列表中看到"Prevent saving changes that required table re-creation" The image

    您需要启用更改跟踪 .

    • 右键单击数据库,然后单击“属性”

    • 点击更改跟踪并启用它

    • 再次使用工具 - >选项 - >设计器并取消选中它 .

  • 0

    如果您使用sql server Management studio,请转到工具>>选项>>设计器并取消选中“防止保存需要重新创建表的更改”它适用于我

相关问题