小编Ric*_*key的帖子

检查组中恰好有一个位列设置为 true 的约束

假设您有一个地址表,如下所示:

dbo.Address
(
    AddressId INT PRIMARY KEY,
    CustomerId INT,
    IsPrimary BIT,
    ...
    more typical address fields
    ...
)
Run Code Online (Sandbox Code Playgroud)

我想要一个检查约束来强制每个客户始终只有一个主要地址,允许我为客户切换主要地址或添加新地址并使其成为主要地址。

我知道我可以有一个约束,即不超过一个是主要的(允许没有一个是主要的),然后在插入/更新一个地址为主要地址之前将所有客户的地址设置为非主要地址。但是,如果客户有地址,其中之一必须始终具有 IsPrimary = 1,我将如何强制执行?

sql-server sql-server-2014

3
推荐指数
1
解决办法
754
查看次数

标签 统计

sql-server ×1

sql-server-2014 ×1