日期:2014-05-17  浏览次数:20542 次

TRIGGER 如何insert到局域网内其他机器数据库
计算机pc1:
IP地址:192.3.190.200
数据库名称:pc1_db
数据库表:T_pc1(a,b,c)

计算机pc2:
局域网内服务器IP地址:192.3.190.180
数据库名称:pc2_db
数据库用户名:sum
密码:sum_pc2
数据库表:T_pc2(e,f)

如何写一个触发器,当pc1的表T_pc1有insert时候,把pc1的表T_pc1 insert的数据a字段和c字段的内容也insert到计算机pc2的表T_pc2(e,f)中。
即T_pc1 字段a insert的内容-->insert 到T_pc2 的e字段,
  T_pc1 字段b insert的内容-->insert 到T_pc2 的f字段。

------解决方案--------------------
新建一个链接服务器,指向pc2,加上写表的逻辑就可以了.
------解决方案--------------------
--step 1 先建立连接服务器,这个我就不写语句了。lz查一下就知道怎么弄了
 
--step 2 触发器处理
CREATE TRIGGER trg_T_pc1 ON [dbo].T_pc1
for insert
AS
begin 
    set xact_abort on  
    begin distributed tran
    Insert into [对应192.3.190.180的连接服务器要先建好].pc2_db.T_pc2(e,f)
    select a,c from inserted
End

------解决方案--------------------

--创建
exec sp_addlinkedserver   '别名', '', 'SQLOLEDB', 'ip'
--连接
exec sp_addlinkedsrvlogin  '别名', 'false',null, '账号', '密码'  

--以后不再使用时删除链接服务器  
exec sp_dropserver  '别名', 'droplogins'