【问题标题】:sql server 2005 :how to put not null constraint on a column depending upon value in other column?sql server 2005:如何根据其他列中的值对列进行非空约束?
【发布时间】:2009-05-05 05:32:17
【问题描述】:

在一个表中,两列是 billable(bit),billabledate(datetime)。如果 billable 不为 null,我希望 billable date 不为 null。

【问题讨论】:

    标签: null conditional


    【解决方案1】:

    添加检查约束:

    CHECK (billable 不为 null 且 billabledate 不为 null) OR (billable 为 null)

    【讨论】:

      【解决方案2】:

      你需要一个检查约束

      使用 NOCHECK 更改表 dbo.Table
      添加约束 CK_Table_BusinessRule 检查(Billable 不为空且 BillableDate 不为空)

      http://msdn.microsoft.com/en-us/library/ms179491(SQL.90).aspx

      【讨论】:

        【解决方案3】:

        我会尝试在插入后和更新后向表中添加一个触发器,以强制执行该约束。 检查 billable 值,如果它不为 null 且 billabledate 为 null,则阻止插入/更新。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-01-11
          • 1970-01-01
          • 2021-01-27
          • 2019-10-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多