在MS SQL约束中创建唯一检查+其他检查

时间:2019-01-30 10:08:19

标签: sql sql-server check-constraints

我需要在下表中添加一个约束:

Table(
CategoryId INT,
CustomerId INT,
IsActive BIT
....
)

我只想拥有(CategoryId,CustomerId,IsActive = 1)的一种组合 只是不知道如何将其置于一个约束中。 类别和客户中只有一个组合处于活动状态(Active = 1),并且可以具有多个active = 0

我知道可以用函数来完成,但是我试图找到一种没有函数的方法。 像这样:

CONSTRAINT UN_CK_Table UNIQUE(CategoryId,CustomerId,IsActive = 1)

1 个答案:

答案 0 :(得分:4)

您可以使用过滤后的唯一索引:

CREATE UNIQUE INDEX YourTableUi1 ON YourTable (CategoryId, CustomerId) WHERE (IsActive = 1);