假设您有一个地址表,如下所示:
dbo.Address
(
AddressId INT PRIMARY KEY,
CustomerId INT,
IsPrimary BIT,
...
more typical address fields
...
)
Run Code Online (Sandbox Code Playgroud)
我想要一个检查约束来强制每个客户始终只有一个主要地址,允许我为客户切换主要地址或添加新地址并使其成为主要地址。
我知道我可以有一个约束,即不超过一个是主要的(允许没有一个是主要的),然后在插入/更新一个地址为主要地址之前将所有客户的地址设置为非主要地址。但是,如果客户有地址,其中之一必须始终具有 IsPrimary = 1,我将如何强制执行?