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

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

为什么我要重新创建表格?我只是想把一个数据类型从smallint改为real。

桌子是空的,我直到现在才用过。


当前回答

点击位于顶部菜单的工具。 从下拉菜单中选择选项。你现在有一个弹出式选择设计师选项位于菜单的左手块。取消选中“防止保存需要重新创建表的更改”选项。点击OK按钮。

其他回答

取消选中“工具►选项►设计器”页签中的“防止保存需要重新创建表的更改”框。

SQL Server 2012示例:

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

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

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

修改表MyDate7为空

防止保存需要重新创建表的更改 五声急促的咔哒声 工具 选项 设计师 防止保存需要重新创建表的更改 好的。 保存后,重复上述步骤,重新勾选复选框。这可以防止意外数据丢失。

进一步的解释

默认情况下,SQL Server Management Studio阻止表的删除,因为当一个表被删除时,它的数据内容就丢失了 在表设计视图中更改列的数据类型时,在保存更改时,数据库将在内部删除表,然后重新创建一个新表。

*您的具体情况不会造成任何后果,因为您的表是空的。我提供这个解释完全是为了提高您对这个过程的理解。

如果你正在使用SSMS:

进入“工具>>选项>>设计器”菜单,取消勾选“防止保存需要重新创建表的更改”

这是非常容易和简单的设置问题,可以在5秒内通过以下步骤解决

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

打开Microsoft SQL Server Management Studio 2008 单击“工具”菜单选项,然后单击“选项” 选择设计师 取消选中“防止保存需要重新创建表的更改”选项 单击OK 试着改变一下你的桌子 您的更改将按预期执行