Показать сообщение отдельно
Старый 10.02.2023, 18:08   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,709 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Контроль уникальности с условием dax2012
Есть таблица с полями: ItemId, Status

Status - это Enum, который может принимать значения "Активный", "Неактивный"

Есть периодичка, которая обновляет данные в этой таблице, но только среди записей со статусом "Активный". Если записи нет, то создает новую. Тоже со статусом "Активный"

Проблема в том, что если будет запущено сразу 2 периодички разными пользователями, то есть риск получить "дубли"

Как правило, проблема дублей решается созданием уникального индекса. Но здесь проблема в том, что контролировать уникальность надо не по всем записям, а только среди записей со статусом "Активный"

Проверка в триггере смысла не имеет, поскольку именно эта проверка и делается внутри периодички. Новая запись создается именно в случае, когда такой записи не нашли. Значит, скорее всего, и триггер это не поймает

Какие есть варианты решения проблемы в dax2012?

PS: Вариант запрета запуска периодички по каким-либо условиям - не рассматривается
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...