有必要构建约束在列保证在所有行只有一个值是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

和唯一约束添加到

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top