使用约束检查sql唯一值

mko*_*mko 6 sql sql-server-2005 unique check-constraints unique-constraint

我有一种情况,表有三列ID,值和状态.对于不同的ID,应该只有一个值为1的状态,并且应该允许ID具有多于一个值为0的状态.唯一键将阻止ID具有多于一个状态(0或1).

有没有办法解决这个问题,可能使用约束?

谢谢

Mik*_*son 4

您可以创建一个索引视图,该视图将支持保持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)
Run Code Online (Sandbox Code Playgroud)

在 SQL Server 2008 中,您可以使用唯一的筛选索引。