如何跨服务器设置触发器?

      有两个数据库(A、B)分别部署在不同的服务器上,在A数据库做触发器,添加一条数据会自动在B数据库添加一条数据。
     触发器我们一般在同一个服务器的数据库中使用,不同的服务器之间操作就比较少,现在要实现跨服务器执行触发器操作。 开始从网上查了好多资料,发现都不能解决;
最让我感觉到有希望的是如下的方法,按照这个操作让我在A服务器看到了B服务器里边的数据,当我以为一切都完成了的时候,发现触发器根本执行不了。如下
   (首先:在SQL中执行以下存储过程语句:
exec sp_addlinkedserver  'RemoteServer ', ' ', 'SQLOLEDB ', '112.28.18.23' ---创建服务器连接
exec sp_addlinkedsrvlogin  'RemoteServer ', 'false ',null, 'sa', '123456789' --创建登陆
sp_dropserver 'RemoteServer ','droplogins'--删除服务器连接和登陆
        其次:做好上一步准备之后还需要将服务中远程分布式服务启动,以实现SQL跨服务器操作,这是微软在实现远程服务器所必需的。右键点击“我的电脑”--“管理”--“服务和应用程序”--“服务”---启动“Distributed Transaction Coordinator”服务,启动分布式服务后还要打开远程服务器以及本地服务器135端口,因为远程分布式服务需要该端口通讯。
1:打开“控制面板”--“管理工具”--“组件服务”
2:在“计算机”下右击“我的电脑”--“属性”--选择“MSDTC”选项卡
3:点击“安全性配置”按钮,
4:网络DTC访问勾选上,允许远程客户端,允许远程管理,允许入站,
允许出站,不要求身份验证勾选上。
注意:以上步骤需要两台服务器都要配置。 
       到此位置配置准备工作就可以完成了,下面就可以写一个触发器去执行操作远程服务器上的表了。这样本地服务器上的每一个数据操作增删改都会及时同步到远程服务器数据库中。)
最后还是以失败而告终,最后常识到很多之后,在一个博客下边看到了一个方法,如下:
SET @remark=(select [UC_REMARKS] FROM  OPENDATASOURCE('SQLOLEDB','Data Source=119.09.11.123;User ID=sa;Password=123').[YunZhiSys].[dbo].[aaa] 
WHERE  ID=1 )
先在服务器A上登录一下服务器B,然后获取数据,插入按照这个方法写就行了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值