更新库存SQL算法1.0版

更新库存SQL算法版

  • 页面布局
    请选择仓库(下拉选择)
    填写设备  填写出库数量  
    填写设备  填写出库数量  
    填写设备  填写出库数量  
    填写设备  填写出库数量  
    需求描述:首先选择仓库,然后依客户需要,填写要出库的设备并填写出库数量。如右图所示。
  • 功能描述:批量出库时,对于库存不够的设备要提示该设备库存不够,并撤消本次出库操作,对于库存中没有的设备也要提示该设备中不存在,否则提交。注意客户可以选择一样的设备。
  • 技术难点:在库存不够时给出提示并撤消;对于多个相同的设备怎么样快速汇总。
  • 关键词:存储过程,函数,游标,事务。
  • 数据库设计
  1.  库房表 
    库房表tb_Storeroom
    P_StoreroomId(库房ID)

    StoreroomName(库房名称)

    1 库房1
    2 库房2
  2. 设备表 
      设备表tb_Equipment  

    P_EquipmentId(设备id)

    EquipmentName(设备名称)
    1 飞毛腿导弹
    2 爱国者导弹
  3. 库存表

库存表tb_Stock
P_StockId(库存ID) F_EquipmentId(设备ID) Mount(库存数量) F_StoreroomId(所属库房)
1 1  10  1
2 1  15

 1

存储过程实现(内有详细注释,不再另外说明了)

 

  Create   Procedure  sp_ComputeStock
  
@StoreroomId   INT   =   NULL , -- 库房编号
   @EquipmentIds   VARCHAR ( 1000 ), -- 设备编号,各设备编号间用逗号隔开,例如:1,2,3,4
   @EquipmentMount   VARCHAR ( 1000 ) -- 设备数量,各设备数量间用逗号隔开,例如:11,15,20,5
  AS

  
SET  NOCOUNT  ON
  
SET  CURSOR_CLOSE_ON_COMMIT  OFF      -- 设置手动关闭游标,使事务不会影响到游标的打开和关闭

  
DECLARE  
     
@tb_EquipmentIds   TABLE ( [ Id ]   INT   IDENTITY  ( 1 , 1 ),EquipmentId  INT ) -- 表变量,设备编号表
   DECLARE  
     
@tb_EquipmentMount   TABLE ( [ Id ]   INT   IDENTITY  ( 1 , 1 ),EquipmentMount  INT ) -- 表变量,设备数量表

  
INSERT   INTO   @tb_EquipmentIds   SELECT   *   FROM  dbo.f_splitSTR(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值