以下代码概括了我的想法。非常感谢任何建议。感谢。
要求是:
inventory_list
中不存在'Y'
,则标记为item_no
的 item_stock
将回滚到原始值。
如果存在item_no
,请更新item_stock
将item_no设置为已发布。
我担心当我尝试检查item_no
是否存在具有给定库存类型且不会引发错误并继续执行更新时,可能会出现脏读代码的最后一部分。
以下是代码:
update inventory_list set distributed = 'Y' where itempattern =
@pattern
output
inserted.invetory_type
into @inventory_type
if not exist (select top 1 item_no
from item_stock
where inventory_type = @inventory_type)
BEGIN
RAISERROR ("not enough stock", 10, 1)
ROLLBACK
END
else
BEGIN
update item_stock set issued = 1
where item_no =
(select top 1 item_no
from item_stock
where inventory_type = @inventory_type)
END