表A的数据是从表B中得到的?那表A还有存在的必要吗? 用视图代替就完了

解决方案 »

  1.   

    晕,写错了
    表A的部分数据是从表B中得到的,表B的数据时刻在变化 ,所以要
    update 表A  where id in (select id from 表B)
    并且
    insert 表A  (select 数据  from 表B  where id not in (select id from 表A))用什么方法比较好?
      

  2.   

    谢谢啊。还是看不大明白,然后现在问题更复杂点,如下,不知跟原先说的有没有区别表A是服务器1  sql server中的一个表,视图B是服务器2 中的一个view. 
    我已经在服务器1中建立了相关的链接服务器,在服务器1中可以查询视图B的数据。 
    现在表A的部分数据是从视图B中得到的,表B的数据时刻在变化 ,表A中的表B部分也要时刻变化, 
    所以要 
    update 表A  where id in (select id from 表B) 
    并且 
    insert 表A  (select 数据  from 表B  where id not in (select id from 表A)) 
    要实现这样的触发器得怎么写的?
      

  3.   

    你要用到临时表deleted,inserted这是关键.
    在同一服务器实例中同步更新表,要用到触发器
    如果是不同服务器,则要考虑同步复制订阅了.
      

  4.   

    --已在B上建立链接服务器
    create trigger t1 
    for insert,delete
    as
    insert into RemoteSQL1.dbname..TableA select * from inserted
    delete from RemoteSQL1.dbname..TableA where id in (select id in deleted)
    go