当前位置: 代码迷 >> Sql Server >> - SQL Server 2005 创建跨服务器“触发器” -该如何处理
  详细解决方案

- SQL Server 2005 创建跨服务器“触发器” -该如何处理

热度:5   发布时间:2016-04-27 17:06:03.0
-- SQL Server 2005 创建跨服务器“触发器” --
-- 今天的唯一一点收获,贴出来与大家分享!(欢迎大家多提宝贵意见!)

http://topic.csdn.net/u/20100610/09/80f14ecc-ff88-4d96-97e7-1a6e3cf1fa53.html?11629
SQL code
--  整了一上午终于把楼主这个问题给整好了!--  比如说:在本地 test 数据库 与局域网 245 的 hlldb数据库中 都有一张结构如下的表 tCREATE 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 INSERTASBEGIN  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);ENDINSERT 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.htmlINSERT INTO t(id,name) values(1,'luoyoumou1');SELECT * FROM t;SELECT * FROM it245.hlldb.dbo.t;


------解决方案--------------------
SF还在不?
搬凳子学习
------解决方案--------------------
与楼主一起学习,蹭楼主的分。帮顶
------解决方案--------------------
路过学习下
------解决方案--------------------
探讨
-- 今天的唯一一点收获,贴出来与大家分享!(欢迎大家多提宝贵意见!)

http://topic.csdn.net/u/20100610/09/80f14ecc-ff88-4d96-97e7-1a6e3cf1fa53.html?11629

SQL code

-- 整了一上午终于把楼主这个问题给整好了!
-- 比如说:在本地 test 数据库 与局域网 245 的 hlldb……

------解决方案--------------------
我只是关心稳定性以及效率
不要动不动就连不上远程库了
------解决方案--------------------
我也来学习一哈哈。。。。顺便蹭点分。。O(∩_∩)O~
------解决方案--------------------
再问一个问题
关于连接远程服务器的命令
exec sp_addlinkedserver 'it245 ', ' ', 'SQLOLEDB ', '192.168.1.245' 
exec sp_addlinkedsrvlogin 'it245 ', 'false ',null, 'sa', 'go2wan@szty' 

是在什么时候执行?
是放在触发器里面每次触发的时候连接?还是在每次本地SQL Server服务启动后执行一次就可以了

------解决方案--------------------
我是来接分的
------解决方案--------------------
学习了
------解决方案--------------------
确定有试成功吗?
------解决方案--------------------
靠,传说中的~~~老板在这里发贴了~~~

顶呀~~~~
------解决方案--------------------
up...........
------解决方案--------------------
个人 不赞成 使用触发器,出了问题 查的头大, A触发B,B触发C, c又触发A , .... 更何况你弄个 跨网络的触发器 会疯掉的 .......


今天挺热,泼你点水 凉快凉快
------解决方案--------------------
很好很强大, 可惜才疏学浅看不懂
  相关解决方案