【问题标题】:Unique Constraint for Bit Column Allowing Only 1 True (1) Value仅允许 1 个真 (1) 值的位列的唯一约束
【发布时间】:2017-11-06 16:46:37
【问题描述】:

我有这张桌子:

CREATE TABLE [tblExample](
    [ExampleID] [int] IDENTITY(1,1) NOT NULL,
    [WordsAndStuff] [nvarchar](max) NOT NULL,
    [Active] [bit] NOT NULL

我希望 Active 列具有唯一约束,仅允许一条记录为真 (1)。在这一点上,我不需要一直有一个真实的记录,最多只能有一个。

如何编写约束?

【问题讨论】:

    标签: sql-server tsql constraints unique


    【解决方案1】:

    表中一次只有一个active 记录?您可以使用带有过滤器的唯一索引:

    create unique nonclustered index uixf_tblExample_Active_filtered
      on tblExample (Active)
        include (ExampleId, WordsAndStuff) -- optional included columns
      where Active=1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-23
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多