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'
我有一个 SQL 服务器 table tbl_Submissions,其中包含任何给定 CaseID 的许多记录。每个提交都有一个授权状态字段,可以是“授权”、“拒绝”、“撤销”。一个 CaseID 可能有多个被拒绝或撤销的提交,但只能有一个授权记录。
是否可以添加约束或索引来强制执行此操作?
可以使用filtered index实现:
CREATE UNIQUE INDEX udx ON tbl_Sumbissions(CaseID)
WHERE AuthorisedStatus = 'Authorised'