想做一个触发器,允许仅在插入数据时被触发,修改时不被触发。现不管是插入还是修改数据时均被触发,语句如下:CREATE TRIGGER trigger_name
  ON 表1
for insert
as 
update a
set a.列1=b.列2
from 表1 a,inserted b
where a.id=b.id

解决方案 »

  1.   

    我记得MSSQL的更新有2种模式,1种是删除原记录,然后插入一条新的,还有一种是直接用Update语句,我估计你用的是第一种模式,所以更新会触发Insert
      

  2.   

    if exists(select 1 from inserted) and not exists(select 1 from deleted) begin
      --insert
    end
    else if not exists(select 1 from inserted) and exists(select 1 from deleted) begin
      --delete
    end
    else begin
      --update
    end
      

  3.   

    在Insert触发器可以加入一个if update() 语句来判断是更新操作还是插入操作,具体的百度吧。