【问题标题】:"Save changes is not permitted" when changing an existing column to be nullable将现有列更改为可为空时“不允许保存更改”
【发布时间】:2011-12-04 09:24:00
【问题描述】:

我有一个 SQL 数据库表,其中有 35 条现有记录。此表中的字段之一称为Namenvarchar(100)not null

但是,由于最近的更改,我需要将此列设为可为空。

当我在 SQL Server Management Studio 中更改列以允许空值并保存更改时,我收到以下错误:

不允许保存更改。您所做的更改需要 以下表将被删除并重新创建

如何允许自动删除并重新创建它?

【问题讨论】:

    标签: sql ssms nullable


    【解决方案1】:

    我找到了解决方案。转到“工具 > 选项 > 设计器 > 表和数据库设计器”:

    【讨论】:

    • 唯一浪费人们时间的事情是将某些东西标记为实际上并不能帮助遇到同样问题的人的答案。 ;-)
    • @Oran 哈哈,我猜你没有遇到同样的问题,否则我不会将其标记为答案。也许是不同的 SQL Server 版本?..
    • MS 表示重新创建表可能会导致数据丢失,并警告关闭此选项。
    • @Maxence 的警告很好。我关闭了此安全选项,进行了更改,然后将其重新打开,以防止我以后意外丢失数据。
    【解决方案2】:

    这是 SSMS 中的设置。

    工具 - 选项 - 设计器 - 防止保存需要重新创建表的更改

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题;想要为以前不允许的列允许 Null。考虑 MS 的警告不要关闭此选项: http://support.microsoft.com/kb/956176

      他们建议使用 Transact-SQL 来解决问题,例如 alter table MyTable alter column MyDate7 datetime NULL

      这为我解决了。

      【讨论】:

        猜你喜欢
        • 2013-08-06
        • 1970-01-01
        • 2011-04-03
        • 2011-04-22
        • 2019-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多