晕,写错了 表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))用什么方法比较好?
谢谢啊。还是看不大明白,然后现在问题更复杂点,如下,不知跟原先说的有没有区别表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)) 要实现这样的触发器得怎么写的?
--已在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
表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))用什么方法比较好?
我已经在服务器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))
要实现这样的触发器得怎么写的?
在同一服务器实例中同步更新表,要用到触发器
如果是不同服务器,则要考虑同步复制订阅了.
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