create trigger tr
on A
for update
as
if exists(select 1 from B join inserted I on I.ID=B.ID)
begin
      update B
      set name=I.name,
          address=I.address
      from B
      join inserted I on I.id=B.id
end
go

解决方案 »

  1.   

    create trigger t_test on 表Afor insert,update,delete
    delete 表B
    where id in(select id from deleted)
    insert into  表B
    select * from inserted
      

  2.   

    --给你一个例子:
    create table t_a(id int identity(1,1),username varchar(20))create table t_b(id int identity(1,1),username varchar(20))create trigger tr_a on t_a
    for update,insert,delete
    as
    alter table t_b  DISABLE TRIGGER tr_b
      ----------------------------------
    if not exists (select * from deleted) --插入
    insert t_b(username) select username from inserted
    else if not exists (select * from inserted)--删除
    delete t_b where id in (select id from deleted)
    else--更新
    update a set a.username=i.username from t_b as a,inserted as i where a.id=i.id
    alter table t_b  ENABLE TRIGGER tr_b------------------------------------------
    create trigger tr_b on t_b
    for update,insert,delete
    as
    alter table t_a  DISABLE TRIGGER tr_a
      ----------------------------------
    if not exists (select * from deleted) --插入
    insert t_a(username) select username from inserted 
    else if not exists (select * from inserted) --删除
    delete t_a where id in (select id from deleted)
    else --更新
    update a set a.username=i.username from t_a as a,inserted as i where a.id=i.id
    alter table t_a  ENABLE TRIGGER tr_a
    select * from t_a
    select * from t_b--测试:
    insert t_a(username) values('test')
    insert t_b(username) values('test2')
    update t_a set username='test1' where id=1
    update t_b set username='test3' where id=1
    delete from t_a where id=1
    delete from t_b where id=2
    --------------------------
    select * from t_a
    select * from t_b
      

  3.   

    请你讲一讲select 1 from B join inserted I on I.ID=B.ID这一句的意思,好吗?
      

  4.   

    非常感谢各位!
    现在我还有表C,D,不确定的表个数,他们都同表B一样,怎么处理呢?
      

  5.   

    B join inserted I on I.ID=B.ID---就是插入A的纪录在B也存在I.ID=B.ID的话,select 1就会有资料,否则为null罗
      

  6.   

    现在我还有表C,D....不确定的表个数,他们都同表B一样,怎么处理呢?
    怎样把这些表一起处理啊!