create trigger tg on tbl
after insert
insert tbl(col1,col2) select col2,col1 from tbl1 where 1=1这样的触发器,在触发之后会怎么样?有人试过吗

解决方案 »

  1.   

    执行一次:
    insert tbl(col1,col2) select col2,col1 from tbl1 where 1=1
      

  2.   

    create trigger tg on tbl
    after insert
    insert tbl(col1,col2) select col2,col1 from tbl1 where 1=1这样的触发器,在触发之后会怎么样?有人试过吗---------------
    這是對tb1 表建的插入触发器,但又對insert tbl(col1,col2) select col2,col1 from tbl1 where 1=1,不是循環了嗎?你的本意是想取,插入之後的值吧
      

  3.   

    insert tbl(col1,col2) select col2,col1 from tbl1 where 1=1當你執行了這句,會自動執行觸發器的
      

  4.   

    递归触发器
    触发器不会以递归方式自行调用,除非设置了 RECURSIVE_TRIGGERS 数据库选项。有两种不同的递归方式: 直接递归 
    即触发器激发并执行一个操作,而该操作又使同一个触发器再次激发。例如,一应用程序更新了表 T3,从而引发触发器 Trig3。Trig3 再次更新表 T3,使触发器 Trig3 再次被引发。间接递归 
    即触发器激发并执行一个操作,而该操作又激发了同一个表或另一个表中的某个触发器。第二个触发器的执行再次引发第一个触发器的操作。例如,某应用程序更新了表 T1,并引发触发器 Trig1。Trig1 更新表 T2,从而引发了触发器 Trig2 。Trig2 转而更新表 T1,从而再次引发 Trig1。当将 RECURSIVE_TRIGGERS 数据库选项设置为 OFF 时,仅防止直接递归。若要也禁用间接递归,请将 nested triggers 服务器选项设置为 0。