Я использую MSSQL Server и хочу узнать, есть ли способ со стороны СУБД проверить, проверен ли уже «логический» столбец (true) в таблице, но только для подмножества строк.
Вот пример:
У меня есть следующие таблицы
Пользователи
id | name
--------------------
10 | John Smith
11 | Lee Sin
Типы
id | name
--------------------
20 | Developer
21 | Tester
22 | User
UsersTypes
UserId | TypeId | IsDefaultChoice
--------------------
10 | 20 | true
10 | 21 | false
11 | 20 | true
Я хочу вставить в таблицу «UsersTypes» следующее:
UserId | TypeId | IsDefaultChoice
--------------------
10 | 22 | true
* Примечание:В столбце «IsDefaultChoice» по всей таблице будет несколько строк со значением «true», но я хочу, чтобы только одна строка могла быть установлена в «true» для группы UserId в таблице «UsersTypes».
Я ищу способ принудительной вставки, потому что у пользователя «Джон Смит» уже есть одна запись «IsDefaultChoice» в true, и у него не может быть двух «истинных» записей для этого пользователя при вставке (илиобновление)