【发布时间】:2013-09-15 05:21:39
【问题描述】:
我有一种情况,我只想在其他字段中有特定值时才添加唯一约束 例如表格是 ID 分类名称 姓名 价值 类别ID
约束将在 ID、CategoryName 和 Name 上仅为 CategoryID 为 0
有可能吗?
【问题讨论】:
-
ID 始终是唯一的。包含它没有意义。
标签: sql sql-server
我有一种情况,我只想在其他字段中有特定值时才添加唯一约束 例如表格是 ID 分类名称 姓名 价值 类别ID
约束将在 ID、CategoryName 和 Name 上仅为 CategoryID 为 0
有可能吗?
【问题讨论】:
标签: sql sql-server
CREATE UNIQUE NONCLUSTERED INDEX [UQ_ID_CategoryName_Name, CategoryName, Name] ON TableName
(
ID, CategoryName, Name
)
WHERE (CategoryID = 0)
【讨论】:
实现此目的的一种方法是使用两张表,一张用于categoryId0,一张用于其余的。您可以在第一个表上定义唯一性约束,并在您想将它们用作单个表时随时使用视图和联合。
【讨论】:
在Name 上为CategoryID = 0 创建一个过滤的唯一索引。
【讨论】: