update tableA set col1=1,col2=2,col3=3 where ......
表tableA中,有update触发器,
这样的一个语句,修改多个列,调用几次update触发器?还有,我的update触发器中,如果只有
if update(col4)  
 begin
  ......
 end
是不是也要执行触发器,但不执行begin end块中的语句?但我感觉有这种触发器的表,虽然不改col4列的值,但update语句执行也很慢,是不是调用触发器就很影响执行速度?

解决方案 »

  1.   

    修改一次调用一次触发器,与一次修改多少列没关系.
    if update(col4) begin  end
    是在修改 col4 时执行的程序段,不改该列,这个程序段不执行.
      

  2.   

    修改一次调用一次触发器,与一次修改多少列没关系.
    if update(col4) begin end
    是在修改 col4 时执行的程序段,不改该列,这个程序段不执行.
    有触发器的表,执行速度会有影响.
      

  3.   

    还有,我的update触发器中,如果只有
    if update(col4)   
     begin
      ......
     end
    是不是也要执行触发器,但不执行begin end块中的语句?begin..end里面的是要么执行 要么回滚