zyl971005
2017-06-14 07:15
采纳率: 100%
浏览 1.5k

如何在SQL SEVER中触发器更新数据

例如 库存中有三个属性(产品编号,产品名称,产品数量)
当执行插入操作时,若产品编号为已有编号,产品数量=产品数量(原有)+产品数量(插入的)
只学习了ORACLE里的触发器书写,在SQL SEVER中不知道如何区分原有的属性和新加入的属性,望各位大佬指点。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 战在春秋 2017-06-14 07:48
    已采纳

    可以这样:

    create trigger trigger_store_insert
    on 库存
    after insert
    as
        update 库存 set 产品数量 = 产品数量 + inserted.产品数量
        from 库存, inserted 
        where 库存.产品编号 = inserted.产品编号
    

    用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!

    点赞 打赏 评论
  • bigcoolar 2017-06-14 07:58

    个人建议一般不用触发器,弊端很多。你也可以用存储过程来实现,或者用程序实现各种判断,方便二次开发。

    点赞 打赏 评论
  • 战在春秋 2017-06-14 08:58

    换这个试试:

    create trigger trigger_store_insert on 库存
    after insert as
    begin
        UPDATE 库存 
        SET  库存.产品数量 = 库存.产品数量 + i.产品数量
        FROM Inserted i
        WHERE 
             库存.产品编号  = i.产品编号 ;
    end;
    
    点赞 打赏 评论

相关推荐 更多相似问题