如果要回滚的话就从Inserted表中找到刚刚插入行的Id
然后就根据这个Id把刚刚添加的行删除不就行了吗。。

解决方案 »

  1.   

    //先插入,不符合条件再删除之.....
    create trigger tr_insert on dbo.jy
    as
    declare @sumold numeric(18),@sumnew numeric,@id int
    declare cursor_insert cursor for
    select sum ,id from inserted
    open cursor_insert 
    fetch next from cursor_insert into @sumnew ,@id
    while @@fetch_status=0
    begin 
        set @sumold=(select sum(qty) from jy where id<>@id)//不记算本次的插入数量
        if @sumold>@sumnew
        begin
            delete from jy where id=@id
        end
        fetch next from cursor_insert into @sumnew ,@id
    end
    close cursor_insert
    deallocate cursor_insert=========================================不过最好是在保存时就做一个验证,这样就不会在插入后又要删除了....