SQL table 中数据子集的唯一约束

SQL Unique Constraint on Subset of data in table

我有一个 SQL 服务器 table tbl_Submissions,其中包含任何给定 CaseID 的许多记录。每个提交都有一个授权状态字段,可以是“授权”、“拒绝”、“撤销”。一个 CaseID 可能有多个被拒绝或撤销的提交,但只能有一个授权记录。

是否可以添加约束或索引来强制执行此操作?

可以使用filtered index实现:

CREATE UNIQUE INDEX udx ON tbl_Sumbissions(CaseID)
WHERE AuthorisedStatus = 'Authorised'