码迷,mamicode.com
首页 > 数据库 > 详细

SQL SERVER 触发器的误区

时间:2017-11-25 16:18:28      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:add   value   insert   多个   触发器   rom   数据   from   bsp   

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指令有关

SQL SERVER 触发器的误区

标签:add   value   insert   多个   触发器   rom   数据   from   bsp   

原文地址:http://www.cnblogs.com/berlin/p/7895297.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!