sql-server - 位列的唯一约束仅允许 1 个真 (1) 值

标签 sql-server tsql constraints unique

我有这张表:

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

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

如何编写约束?

最佳答案

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

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

关于sql-server - 位列的唯一约束仅允许 1 个真 (1) 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47141834/

相关文章:

sql-server - Select 语句从 Netezza 数据库获取数据并将其插入 SQL Server 数据库 (SSIS)

c# - 更新存储过程中的死锁

python - 控制洗牌距离

swift - 将 xib 文件中的 View 添加到 UITableViewCell 添加约束

c# - 如何使用 C# 中的 MySQL 存储过程将表作为存储过程的输入发送?我有 T-SQL 工作

c# - 使用 Vector2 和 Vector2 作为通用约束?

sql - 从 msdb.dbo.sysjobhistory 获取最近 24 小时的作业记录

java - 如何将XML文件NodeValue插入SQL Server数据库?

sql - 在没有动态 SQL 的情况下对多个表运行相同的查询

sql - 存储过程中是否需要BEGIN/END关键字?