user23278799 Asked: 2024-03-20 10:13:20 +0800 CST2024-03-20 10:13:20 +0800 CST 2024-03-20 10:13:20 +0800 CST 强制强制一个值(或一组值)最多有 2 个实例的约束 772 唯一索引可用于确保特定值或值集最多有 1 个实例。我的问题是,有没有办法强制一个值或一组值最多有 2 个实例?我知道检查约束中的触发器和标量 UDF。我对这些解决方案不感兴趣。 数据库:SQL Server 2017。 sql-server 1 个回答 Voted Best Answer Charlieface 2024-03-22T19:59:25+08:002024-03-22T19:59:25+08:00 您可以添加一个带有检查约束的列,仅允许0和之间的数字1。 然后只需在其上放置一个唯一的密钥即可。 CREATE TABLE YourTable ( SetId int, IdInSet int CONSTRAINT Max2PerSet CHECK (IdInset BETWEEN 0 AND 1), PRIMARY KEY (SetId, IdInSet) ); 在进行更新或删除之前,您必须检查每组中是否有空位。不要认为额外的列是连续的,它不值得,只需在该集合中查找空闲 ID。
您可以添加一个带有检查约束的列,仅允许
0
和之间的数字1
。然后只需在其上放置一个唯一的密钥即可。
在进行更新或删除之前,您必须检查每组中是否有空位。不要认为额外的列是连续的,它不值得,只需在该集合中查找空闲 ID。