zoukankan      html  css  js  c++  java
  • SQL SERVER 触发器的误区

    SQL SERVER  触发器的误区

    有一个AFTER INSERT 触发器,当同一事务插入多条数据时,触发器触发几次?Inserted暂存表有几条记录?

    误区:同一个事务内,肯定只有一次触发,插入几条据 Inserted表内就有几条

    实际情况却不尽然,要分情况,看事务内的INSERT INTO 语句怎么写的

    情况一.

    BEGIN TRAN     I

    NSERT INTO t1(field1,field2) VALUE(v001,v002);    

    INSERT INTO t1(field1,field2) VALUE(v001,v002);

    COMMIT

    结果:触发两次,Inserted表只有一条记录

    情况二.

    BEGIN TRAN    

    INSERT INTO t1(field1,field2) VALUES(v101,v102),(v201,v202);

    COMMIT

    结果:触发一次,Inserted表有两条记录

    情况三.

    BEGIN TRAN    

    INSERT INTO t2 SELECT id, name, address FROM t1

    COMMIT

    结果:触发一次,Inserted表有多条记录

    结论:触发次数与是否同一事务无关,与有多个INSER INTO指令有关

  • 相关阅读:
    坐标系的冷知识2
    坐标系的冷知识
    XMPP即时通讯(代码实现)
    约束问题
    实现ios屏幕的横竖屏自适应
    3D Touch ? 木有6s,也阔以玩!!!
    Autolayout
    Xcode7免证书真机调试
    微信支付
    二维码扫描
  • 原文地址:https://www.cnblogs.com/berlin/p/7895297.html
Copyright © 2011-2022 走看看