sql的触发器本来就是这样的,不支持行级触发.你插入多少次,就触发多少次,不论你是批量插入,还是单条记录插入.

解决方案 »

  1.   

    它是按insert 语句来执行,不是按记录的多少执行的吗?
      

  2.   

    问题出在你在触发器里面使用了变量,而mssql的触发器只有表级触发,没有行级处罚,所以只执行一次,解决这种情况有两种办法,1.不要使用变量,可以使用表间关联来解决,2。如果一定要使用变量,你可以考虑使用游标。
      

  3.   

    一样的你批插入时,inserted表里会保存批量的数据,我估计你写的语句是 select @var = 字段 from inserted 这种行式,这样导致了你只处理了inserted中的最末一行数据。