SQL Server存储过程以更新库存

时间:2012-01-04 07:44:09

标签: sql sql-server sql-server-2008 stored-procedures

以下代码概括了我的想法。非常感谢任何建议。感谢。

要求是:

    如果inventory_list中不存在'Y',则标记为item_no
  1. item_stock将回滚到原始值。

  2. 如果存在item_no,请更新item_stock将item_no设置为已发布。

  3. 我担心当我尝试检查item_no是否存在具有给定库存类型且不会引发错误并继续执行更新时,可能会出现脏读代码的最后一部分。

  4. 以下是代码:

     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
    

0 个答案:

没有答案