比如一个事务中有一句删除的语句,我想用一个触发器,判断删除行的时候是不是在其他表里面有资料。如果有就返回一个错误来停止删除。

解决方案 »

  1.   

    ??
    create trigger tri_test
    on [Table]
    instead of delete
    as
    begin
        if not exists(select 1 from deleted a inner join [OtherTable] b on a.key=b.key)
            delete from [Table] where [key] in (select [key] from deleted)
    end
      

  2.   

    create trigger tri_ta
    on ta
    for delete
    as
    begin
    if exists(select 1 
    from tb 
    where id in(
    select id from deleted
    )
    )
    rollbackend