最近做一个仓库管理的小系统,,要用到触发器,但不会写,请高手指点。出库明细表:
outListID,material_id,material_name,quantity,quantity,price,total_price库存表:
material_id,quantity,cangku如上,当我对明细表的某一个物料进行入库和出库操作时候,对该表做个触发器,自动增加或减少库存表中该物料的数量(quantity)两个表关联字段是 material_id ,outlist_id是出库主表的单号

解决方案 »

  1.   

    //顺手写了一个触发器//入库表
    CREATE TABLE INSTOCK(ID INT,QTY INT)
    INSERT INSTOCK SELECT 1,2
    UNION ALL SELECT 2,3
    //库存表
    CREATE TABLE STOCK(ID INT,QTY INT)
    INSERT STOCK SELECT 1,10
    UNION ALL SELECT 2,20
    //触发器CREATE TRIGGER TRI_STOCK
    ON INSTOCK
    FOR INSERT//INSERT触发方式
    AS
    SET NOCOUNT ON//关闭回响UPDATE S
    SET S.QTY=S.QTY+I.QTY
    FROM STOCK S
    INNER JOIN 
    (SELECT SUM(QTY) AS QTY ,ID FROM INSERTED GROUP BY ID) I //这里之所以将逻辑表INSERTED进行汇总,就是为了避免前端应用程序进行批量插入!即一条INSERT,后面的数据是UNION ALL 拼接的。
    ON S.ID=I.IDSET NOCOUNT OFF