根据SQL中的值添加唯一约束

时间:2013-09-14 21:02:15

标签: sql sql-server

我有一种情况,我想在其他字段中存在某个值时添加唯一的constaint 例如表是 ID 分类名称 名称 值 类别ID

约束将在ID,CategoryName和Name上,只有CategoryID为0

有可能吗?

3 个答案:

答案 0 :(得分:4)

CREATE UNIQUE NONCLUSTERED INDEX [UQ_ID_CategoryName_Name, CategoryName, Name] ON TableName 
(
    ID, CategoryName, Name
)
WHERE (CategoryID = 0)

答案 1 :(得分:0)

实现这一目标的一种方法是拥有两个表,一个用于categoryId 0,另一个用于其余表。您可以在第一个表上定义唯一性约束,并在您希望将它们用作单个表时使用视图和联合。

答案 2 :(得分:0)

Name CategoryID = 0创建已过滤的唯一索引。