我有一张像:
Id PersonId Phone IsPrimary
-----------------------------------
1 1 12345 1
2 1 55555 0
3 2 66666 1
4 3 77777 1
5 3 88888 0
6 3 99999 0
我如何创建允许每个 PersonId 仅允许插入一个 IsPrimary = 1 的约束。对于所有 PersonId 应该只有一个 IsPrimary = 1。因此,结果我将无法插入下一条记录:
Id PersonId Phone IsPrimary
-----------------------------------
1 1 00000 1
最佳答案
您可以尝试创建一个唯一的过滤索引:
CREATE UNIQUE INDEX UQ_Person_isPrimary
ON Person (PersonId, IsPrimary)
WHERE IsPrimary = 1
关于sql-server - 创建复合键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40761556/