Проблема одновременной транзакции SQL Server

У меня есть метод, с помощью которого транзакция начинается со следующих запросов:

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'

Меня беспокоит, что если другая транзакция начнется во время выполнения существующей, они потенциально могут выбрать номера комплектов, которые должны быть отмечены как «Используется», поскольку первая транзакция может быть зафиксирована для элементов, которые будут помечены как «Используемые».

Был бы признателен, если бы кто-нибудь дал совет по этому вопросу.

Спасибо!

0
задан marc_s 14 December 2011 в 09:58
поделиться