日期:2014-05-18 浏览次数:20730 次
-- 整了一上午终于把楼主这个问题给整好了! -- 比如说:在本地 test 数据库 与局域网 245 的 hlldb数据库中 都有一张结构如下的表 t CREATE TABLE T( id INT, name VARCHAR(20) ); -- 现在假设当 本地 test 数据库 中的 表 t中插入记录行的同时向 局域网 245 的 hlldb数据库 的表t 插入相同的记录行, -- 实现如下(用触发器实现) -- Step 1 :创建链接服务器、及其登录授权(在本地 test数据库执行) --创建链接服务器 -- 示例代码: -- exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' -- exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' -- 实际操作代码: exec sp_addlinkedserver 'it245 ', ' ', 'SQLOLEDB ', '192.168.1.245' exec sp_addlinkedsrvlogin 'it245 ', 'false ',null, 'sa', 'go2wan@szty' -- Step 2 :创建触发器(在本地 test数据库执行) CREATE TRIGGER tr_in_t on [dbo].[t] FOR INSERT AS BEGIN SET NOCOUNT ON SET XACT_ABORT ON DECLARE @id INT, @name VARCHAR(20); SELECT @id=id, @name=name FROM inserted; INSERT INTO it245.hlldb.dbo.t(id,name) VALUES(@id,@name); END INSERT INTO t(id,name) values(1,'luoyoumou1'); -- 如果出现这样的错误:(请参考以下五个网址的文档) 链接服务器"it245"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "该伙伴事务管理器已经禁止了它对远程/网络事务的支持。"。 -- http://hi.baidu.com/wgx331/blog/item/ef81be45deaadc27cffca32e.html -- http://blog.pfan.cn/jixian/34117.html -- http://dyuan.blog.sohu.com/16734773.html -- http://sai5d.blog.163.com/blog/static/62225483200901322939411/ -- http://topic.csdn.net/t/20060523/11/4771841.html INSERT INTO t(id,name) values(1,'luoyoumou1'); SELECT * FROM t; SELECT * FROM it245.hlldb.dbo.t;