我需要在下表中添加一个约束:
Table(
CategoryId INT,
CustomerId INT,
IsActive BIT
....
)
我只想拥有(CategoryId,CustomerId,IsActive = 1)的一种组合 只是不知道如何将其置于一个约束中。 类别和客户中只有一个组合处于活动状态(Active = 1),并且可以具有多个active = 0
我知道可以用函数来完成,但是我试图找到一种没有函数的方法。 像这样:
CONSTRAINT UN_CK_Table UNIQUE(CategoryId,CustomerId,IsActive = 1)
答案 0 :(得分:4)
您可以使用过滤后的唯一索引:
CREATE UNIQUE INDEX YourTableUi1 ON YourTable (CategoryId, CustomerId) WHERE (IsActive = 1);