基于行的值添加SQL约束

时间:2017-10-09 05:08:46

标签: sql-server tsql

我甚至不确定如何说出这个问题。以下是我要完成的内容的解释:

我需要在AccountId和isDefaultWebOrderingPayment列上添加一个约束,当IsDefault为false时允许多个AccountId和IsDefaultWebOrderingPayment,但不允许多个AccountId和IsDefault的组合为真。

enter image description here

1 个答案:

答案 0 :(得分:3)

根据马丁史密斯的评论,创建一个独特的指数就可以了。

CREATE UNIQUE NONCLUSTERED INDEX uq_AccountId_IsDefaultWebOrderingPayment 
ON PaymentOptions(AccountId, IsDefaultWebOrderingPayment) 
WHERE AccountId IS NOT NULL AND IsDefaultWebOrderingPayment = 1 
GO