我希望在数据库中有两列,一列用于跟踪用户是否提交了某些内容,另一列用于记录提交的时间戳。
如何构造表定义,以使这两列的状态永不不一致?
基本上,我希望布尔字段由submittedDate列是否为空来驱动。下面是表定义的片段:

CREATE TABLE SomeSchema.SomeTable
(
    ...
    SubmittedDate                   datetime                NULL,
    Submitted                       bit                     NOT NULL        DEFAULT(0), -- Drive off of SubmittedDate?
    ...

)

最好的方法是什么?
谢谢!

最佳答案

使用acomputed column

CREATE TABLE SomeSchema.SomeTable
(
    ...
    SubmittedDate                   datetime                NULL,
    Submitted      as cast(case when SubmittedDate is null then 0 else 1 end as bit)
)

关于sql-server - 如何从可为空的列中驱除SQL Server中的 bool 字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2851274/

10-12 15:07