【问题标题】:Add nullable column to SQL Server with default value of null将默认值为 null 的可空列添加到 SQL Server
【发布时间】:2016-05-12 03:36:36
【问题描述】:

我想将一个可为空的布尔列添加到默认值为 null 的现有表中。

我使用了这段脚本,但它没有将默认值设置为 null。而是将其设置为 0。

ADD newColumnName BIT NULL
    CONSTRAINT DF_tableName_newColumnName DEFAULT(null)

【问题讨论】:

  • 为什么在nullable 列上需要default constraint,尤其是当您需要值为NULL
  • 新列的值有 3 个状态。真、假、空。当用户在应用程序中填写表格时。他们可以选择以“是”或“否”来回答问题,也可以不回答问题。对“否”和未回答的反应是不一样的。我需要将用户的这个属性默认为空,就好像他们没有回答那个问题一样。
  • 默认值始终为 NULL - 您无需显式添加默认值。
  • 我相信在 SQL 中,字段的值默认为 NULL,无需使用 DEFAULT 约束显式将其设置为 NULL。

标签: sql sql-server


【解决方案1】:

我刚刚在我的 SQL Server 2008 R2 实例上运行了您的示例代码 sn-p,然后插入了一条记录。正如预期的那样,它将列初始化为空。下一步是发布您使用的 alter 语句和 insert 语句。

我用过:

alter table tmp1 Add newColumnName bit null CONSTRAINT DF_tableName_newColumnName  DEFAULT(null)
insert into tmp1(emp_id) values(9999)
select * from tmp1

运行上述操作后,我使用 SQL Server Management Studio“设计”操作来检查新列的属性。它表明“默认值或绑定”确实是(Null)如预期的那样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    • 2018-01-25
    • 2019-08-17
    • 1970-01-01
    • 2014-08-18
    相关资源
    最近更新 更多