我有一个包含以下列定义的表:
ID (INT, PK)
Name (VarChar)
Active (Bit)
Bunch_of (Other_columns)
问题:我想要一个约束,Name/Active
这样我们只能有 1 条给定Name
为Active
( Active
= 1) 的记录,但我们可以有许多相同Name
的记录Inactive
( Active
= 0)。这可能吗?
我已经尝试过正常的 Unique 约束,但它们将数据集限制为仅允许 1 条记录,且给定Name
为Inactive
.
要在 2005 年以声明方式强制执行此操作,您可以使用索引视图。
这可以使用执行函数的 CHECK 约束来完成。没有完全测试它,但它在我的初始测试中运行良好。这里正在工作,例如。
创建表:
现在尝试在 insert 下面运行。
在使用此方法之前,请彻底测试。
新泽西州