SQL 服务器 : check boolean can only occur once as true

标签 sql sql-server sql-server-2008-r2

在 SQL Server 2008 R2 中,我有一个包含 [Id][Name][bDefault] 的表。所有列不可为空

是否可以检查 bDefault 只能对 一个 记录为真?将其设为唯一索引是行不通的,因为只有最多 1 条记录为真,其余均为假。

最佳答案

使用过滤的唯一索引:

CREATE UNIQUE INDEX IX_... ON [Table](bDefault) WHERE bDefault = 1

关于SQL 服务器 : check boolean can only occur once as true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28720050/

相关文章:

mysql - 使用逻辑 ER 的 SQL 数据库设计

mysql - 如何改变sql上select语句的结果

sql - Adventureworks 2005 和 2008

sql - T-SQL 明年列中去年总计

sql-server - SQL Server中通过select插入百万条记录

php - 持久性 PDO mysql 连接替代方案

mysql - 在更多的两个表上使用相交?

t-sql - 如何在 T-SQL 中实现异或?

sql-server - 同一张表上的两个外键 : how to implement on delete cascade?

sql-server - 如何在Excel中将SSAS维度属性数据类型设为数字