У меня есть метод, где он запускает транзакцию со следующими запросами:
INSERT INTO order_item (item_no, order_id)
SELECT TOP " + Quantity + " item_no, @order_id
FROM items where status = 'Unused'
после выполнения первой команды вставки я хочу обновить все item_no
в таблице items
, которая была вставлена в order_item
в предыдущей команде:
UPDATE items (select item_no from order_item where order_id = @order_id)
SET status = 'Used'
Меня беспокоит, что если другая транзакция начнется во время работы существующей, они могут потенциально выбрать номера комплектов, которые должны быть помечены как «Использованные», так как первая транзакция может быть зафиксирована для элементов, которые будут отмечены как «Использованные» .
Буду признателен, если кто-нибудь сможет дать совет по этому вопросу.
Спасибо!