--估计用触发器能很好解决!

解决方案 »

  1.   

    在表1 和 表2 里面用触发器实现
      

  2.   

    create trigger tr3
    on 表3
    instead of insert
    as
    if not exists(select 1 
                  from inserted I
                  join (
                         select value1 from 表1
                         union 
                         select value2 from 表2
                       )T on I.value3=T.value1
                 )
    begin
           insert 表3 select value3 from inserted
    end
    go--update,delete触发器(表2的和这个类似)
    create trigger tr1
    on 表1
    for update,delete
    as
    if not exists(select 1 from inserted)
    begin
          delete from 表3 where value3 in(select value1 from deleted)
    end
    else
    begin
          update 表3
          set value3=I.value1
          from 表3 A
          join deleted D on D.value1=A.value1
          join inserted I on D.主键=I.主键
    end
    go