我有一个表有三列 ID、值和状态的情况。对于不同的 ID,应该只有一个值为 1 的状态,并且应该允许 ID 具有多个值为 0 的状态。唯一键将防止 ID 具有多个状态(0 或 1)。
有没有办法解决这个问题,也许使用约束?
谢谢
最佳答案
您可以创建一个索引 View ,以支持您保留 ID
的约束。唯一的 [Status] = 1
.
create view dbo.v_YourTable with schemabinding as
select ID
from dbo.YourTable
where [Status] = 1
go
create unique clustered index UX_v_UniTest_ID on v_YourTable(ID)
在 SQL Server 2008 中,您可以改用唯一的筛选索引。
关于sql - 使用约束检查sql唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7841687/