Azure SQL数据库多行INSERT操作时触发器执行次数咨询
Azure SQL数据库多行INSERT时触发器的执行行为
在Azure SQL数据库中,INSERT触发器默认是语句级触发器——也就是说,不管单条INSERT语句插入多少行数据,触发器只会针对整个语句执行一次,后续调用的存储过程也只会执行一次。
以你给出的示例语句为例:
INSERT INTO table SELECT 1, 2 UNION SELECT 3, 4 UNION SELECT 4, 5;
这条语句一次性插入3行数据,但触发器只会触发1次,对应的存储过程也只会被调用1次。
如果需要对插入的每一行单独处理,可以在触发器中通过inserted系统表获取本次INSERT操作的所有新行(这个表包含了所有被插入的记录),然后在存储过程中基于这个集合进行批量处理,或者在触发器内部采用集合式逻辑处理每行数据(尽量避免逐行循环,以保证性能)。
内容的提问来源于stack exchange,提问作者Ahwan Mishra
相关产品推荐
相关产品推荐

