create trigger tr_delete on 表A
for delete 
as
delete from 表B b where exists(select * from inserted where id=b.id)

解决方案 »

  1.   

    create trigger ab_delete on 表A
      after delete
    as 
      delete from 表B where id in(select id from deleted)
      

  2.   

    create trigger tr_delete on 表A
    for delete 
    as
    delete b from 表B b where exists(select * from inserted where id=b.id)
      

  3.   

    to 老大:
    这样把表B的记录全删除了呢?
      

  4.   

    to: yxs001(半梦半醒)
    表A与表B的全删除了!!!
      

  5.   

    还是有点不正常,有时在向表A增加记录时,会删除掉表A原来的记录,而只留下了最新加的这条。
    表B没变化。不知道是怎么回事?老大,这个inserted是怎么一回事,麻烦说一下!谢谢!
      

  6.   

    --至于删除,应该是不能删除表B的记录(我写错了逻辑表名,应该用deleted)create trigger tr_delete on 表A
    for delete 
    as
    delete b from 表B b where exists(select * from deleted where id=b.id)
      

  7.   

    create table 表A(id int,a varchar(10),b varchar(10))
    create table 表B(id int,aa varchar(10),bb varchar(10))
    go--触发器
    create trigger tr_delete on 表A
    for delete 
    as
    delete b from 表B b where exists(select * from deleted where id=b.id)
    go--插入数据
    insert 表A select 1,'AA','AA'
    union  all select 2,'BB','BB'insert 表B select 1,'12','123'
    union  all select 2,'25','654'--删除
    delete from 表A where id=2
    go--显示最后的结果
    select * from 表A
    select * from 表B
    go--删除测试
    drop table 表A,表B/*--测试结果id          a          b          
    ----------- ---------- ---------- 
    1           AA         AA(所影响的行数为 1 行)id          aa         bb         
    ----------- ---------- ---------- 
    1           12         123(所影响的行数为 1 行)
    --*/