我在 SQL Server 2005 中的表中添加了一列。当我尝试保存它时,收到以下消息:
不允许保存更改。您所做的更改要求删除并重新创建下表。您对无法重新创建的表进行了更改,或者启用了“防止保存需要重新创建表的更改”选项。
我添加的列没什么特别的,是一个可空的 nvarchar(11),没有索引或约束。我以前从未见过这个问题,并且之前已经多次更改过表。
有人知道发生了什么事吗?我应该在哪里寻找提到的选项?
答案1
找到了。
它实际上是 SQL Server Management Studio 2008 中的一个选项(我正在使用它,即使所讨论的 DB 是 2005),而不是我预期的 DB 或服务器实例中。
该选项与错误消息“防止保存需要重新创建表的更改”中所述的完全一致。我在 Management Studio 中的“工具”->“选项”->“设计器”下找到了它,它显然是默认启用的。这确实是一个非常奇怪的默认设置!
答案2
出现这种情况可能是因为您没有将列放在表的末尾。将列放在表的中间会导致删除并重新创建表。