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

      有两个数据库(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,然后获取数据,插入按照这个方法写就行了。
  • 0
    点赞
  • 2
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

小邪1205

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值