【发布时间】:2010-01-21 20:12:20
【问题描述】:
每当我对 SSMS 中的表结构进行更改时,都会发出警报:
不允许保存更改。您对下表所做的更改将被删除并重新创建..
【问题讨论】:
-
什么情况下?显示一些代码?
-
向我们展示您目前在做什么,以便我们让您知道您做错了什么。
每当我对 SSMS 中的表结构进行更改时,都会发出警报:
不允许保存更改。您对下表所做的更改将被删除并重新创建..
【问题讨论】:
某些更改会导致表被删除并重新创建。一个这样的例子是将一列添加到表格的中间而不是末尾。
你可以做以下两件事之一:
选项 1
使用 TSQL 进行更改并将列添加到末尾(或特定编辑的等效非 table-drop 选项)
选项 2
更改 SSMS 的默认行为(警告 - 这在生产环境中是一件非常危险的事情)
打开 SQL Server 2008 Management Studio (SSMS)。在菜单中,转到工具/选项。在 Navigation 窗格中,展开 Designers,然后选择“Table and Database Designers”。
在表格选项下,取消选中“防止保存需要重新创建表格的更改”选项,然后单击确定。
【讨论】:
当您所做的更改可能可能导致数据被截断时,我经常看到这类消息。因此,如果您将 nvarchar(20) 更改为 nvarchar(10),就会出现这种情况。该列是否只包含 2 个字符长的数据并不重要,它只查看数据类型。该消息可能还有其他原因和其他风格,但大多数情况下它们遵循相同的推理:如果更改会导致表在其可以保存的数据中受到更多限制,那么它想要进行彻底的手术。
【讨论】: