Мне нужно сделать следующую последовательность шагов в атомном элементе.Вот примерный упрощенный пример:
Таблица клиентов (CustomerId, .., OrderMax)
Таблица продуктов (ProductId, ...)
Представление AvailableProducts (ProductId и другие свойства)
Заказы(CustomerId, OrderId)
- выберите
@OrderMax
из таблицы "Клиенты" - выберите
TOP @Ordermax
из представления "Доступные продукты" - обновите некоторые свойства в Продуктах на основенабор результатов шага 2
- вставка заказов в таблицу заказов (на основе набора результатов шага 2)
- возврат / выбор заказов, которые были вставлены
как IПонимаете, должна быть сделка на все это и UPDLOCK.Необходимо обеспечить таблицу продуктов для обновления и таблицу заказов для вставки.Однако строки запрашиваются из представления, построенного из обеих этих таблиц.
Как правильно сделать эту последовательность атомарным и безопасным обновлением и вставить в приведенные выше таблицы?