gpt4 book ai didi

SQL Server 2008 : Check constraints that guarantees that only one value in all rows is set to 1 and others are 0

转载 作者:行者123 更新时间:2023-12-03 02:06:18 25 4
gpt4 key购买 nike

需要对列建立约束,保证所有行中只有一个值为 1,其他均为 0。

存在带有触发器的解决方案,但我想要内置一些东西。

这样的事情可能吗?

最佳答案

编辑

实际上我刚刚注意到您使用的是 SQL Server 2008,您可以为此使用过滤索引

CREATE UNIQUE NONCLUSTERED INDEX UIX ON YourTable (col) where col = 1

原始答案

最简单的方法可能是将这个特殊的 pk 存储在单独的单行表中。可以通过检查约束强制执行不超过一行的方面。

CREATE TABLE OneRowTable
(
lock CHAR(1) DEFAULT 'X' NOT NULL PRIMARY KEY CHECK (lock = 'X'),
OtherTablePK int
);

否则,假设您可能有一个由正整数组成的 id 字段,您可以添加具有以下定义的计算列

case when col=1 then -1 else id end

并为其添加唯一约束。

关于SQL Server 2008 : Check constraints that guarantees that only one value in all rows is set to 1 and others are 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3804663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com