sql - 使用约束检查sql唯一值

标签 sql sql-server-2005 unique unique-constraint check-constraints

我有一个表有三列 ID、值和状态的情况。对于不同的 ID,应该只有一个值为 1 的状态,并且应该允许 ID 具有多个值为 0 的状态。唯一键将防止 ID 具有多个状态(0 或 1)。

有没有办法解决这个问题,也许使用约束?

谢谢

最佳答案

您可以创建一个索引 View ,以支持您保留 ID 的约束。唯一的 [Status] = 1 .

create view dbo.v_YourTable with schemabinding as
select ID
from dbo.YourTable
where [Status] = 1

go

create unique clustered index UX_v_UniTest_ID on v_YourTable(ID)

在 SQL Server 2008 中,您可以改用唯一的筛选索引。

关于sql - 使用约束检查sql唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7841687/

相关文章:

sql - TSQL游标自动对货币类型变量进行舍入

mysql - 如何在具有多个值的不同数据库中的两个表/不同列之间移动数据

SQL 更新导致死锁

java - 与远程计算机上运行的 SQL Server 2005 实例的 JDBC 连接

python - 无法应用在 python 中的 numpy.ndarray 中查找唯一行的方法

R:唯一(或 dplyr 不同)+ 最近日期

sql - TSQL - 将 IN 与 PIVOT 结合使用

Mysql 查询检查两列之间的单个日期时间值

sql-server-2005 - SQL Server : set varchar to not null when column size is unknown

java - 在java中从字符串数组中存储13个不重复的随机值