日期:2014-05-18  浏览次数:20647 次

跨数据库触发器的问题
已经知
数据库DB1中有表A有字段F1,F2,ID
数据库DB2中有表B有字段B2,ID

想写一个触发器实现:
当DB1的表A插入一条记录时,数据库DB2中的表B也插入一条记录,并且用A.F2的值做为表B.B2的值,A.ID的值作为B.ID的值
当DB1的表A删除一条记录时,数据库DB2中的表B也删除ID相同的记录
应该怎么写?谢谢.
这思路效率会不会很差啊?有没有更好的替代方法?

------解决方案--------------------
SQL code

--insert update分开吧,不然还要加些判断的
create trigger A_INS
on A
for insert,update
as
if update(F2) update t set t.B2=i.F2 from [DB2].[dbo].[B] t,inserted i where i.ID=t.ID;
insert into [DB2].[dbo].[B](B2,ID) select F2,ID from inserted A
    where not exists (select 1 from [DB2].[dbo].[B] t
        where t.ID=A.ID and t.F2=B.F2);
go