在列的值和其他列之间添加约束检查英国

时间:2011-12-08 10:32:49

标签: sql sql-server sql-server-2008 tsql

这是我的目标表

T1
(
Id int not null PK,
Name nvarchar(10) not null
Flag bit not null
)

我需要一个Constraint检查,检查在每一行具有相同名称的行中只有一行有一个真正的标志,换句话说我需要一个UK(1-True值的标志,2-Name),相同的名称可以有一个假旗帜,但只有其中一个可以有一个真旗。有没有人知道这个剧本?

1 个答案:

答案 0 :(得分:3)

使用过滤的唯一索引

CREATE UNIQUE NONCLUSTERED INDEX ix ON T1(Name) WHERE (Flag = 1)