表里有一个addtime的字段,
用触发器怎么限定新插入数据20分钟以上插入才有效,
20分钟以下直接忽略

解决方案 »

  1.   


    create trigger tr on tb
    instead of insert
    as
    begin
        insert into tb
        select * from
        inserted I where datediff(minute,addtime,(select max(addtime) from tb))>20
    end
    go
      

  2.   

    create trigger tr on tb
    instead of insert
    as
    begin
        insert into tb
        select * from
       inserted
    where exists(select 1 from tb where datediff(mi,(select top 1 addtime from tb order by addtime desc),addtime)>20)
    end go
      

  3.   

    create trigger tri_test on tb
    instead of insert
    as
    begin
    declare @addtime_new datetime,@addtime_old datetime
    select @addtime_new=addtime from inserted
    select @addtime_old=max(addtime) from tb
    if datediff(minute,@addtime_old,@addtime_new)>20
    begin
         insert into tb(列名1,列名2......) select 列名1,列名2...... from inserted
    end
    else
    begin
    return
    end
    end