触发器跨服务器访问远程服务器----郑建营 跨服务器的触发器书写方法 引言:电子病历的病人的基本信息,来源于HIS 系统的病人基本信息。两个数据库的信息交互,通过HIS 表的触发器来实现。但是伴随着业务的增长,HIS 数据库和病历数据库可能会部署到不同的服务器上,因此,两个库之间的触发器,必须能满足跨服务器的访问。 书写跨服务器的数据访问,必须要对两台服务器进行相关配置和建立远程服务连接(分布事务),具体实施步骤如下: 一、启用远程分布式服务 1、 打开控制面板,找到管理工具,双击打开,如图: 启动“Distributed Transaction Coordinator”服务,见下图 触发器跨服务器访问远程服务器----郑建营 2、 设置MSDTC 选项 在管理工具中,找到组建服务,双击打开,找到“我的电脑”,鼠标右键点击,选择“属性”如图: 打开窗口后,选择选择“MSDTC”选项卡 点击“安全性配置”按钮, 网络 DTC 访问勾选上,允许远程客户端,允许远程管理,允许入站, 允许出站,不要求身份验证勾选上。 注意: 1、以上步骤需要两台服务器都必须配置。 2、启动分布式服务后还要打开远程服务器以及本地服务器135 端口,因为远程分布式服务需要该端口通讯。启用通讯端口方法看下节。 二、启用通讯端口 1、 打开控制面板,找到管理工具,双击打开,如图: 触发器跨服务器访问远程服务器----郑建营 2、 启用防火墙,点击 例外 ,点击添加程序。 找到路径下:C:\WINDOWS\sy stem32\msdtc.ex e 选中:msdtc.ex e 触发器跨服务器访问远程服务器----郑建营 3、 添加端口 135 点击添加端口,如图增加 135 端口。 注意: 1、以上步骤需要两台服务器都必须配置。 三、建立两台服务器的连接 1、建立互访连接 exec sp_addlinkedserver 'emr_server', '', 'SQLOLEDB', '192.168.0.10' ---创建服务器连接 exec sp_addlinkedsrvlogin ' emr_server ', 'false',null, 'sa', '146-164-152-' --创建登陆 sp_dropserver 'his ','droplogins'--删除服务器连接和登陆,再也不使用了,可以删除。 '192.168.0.10' :目标服务器,即需要连接的远程服务器名称或 IP,即电子病历服务器的名称或 IP 触发器跨服务器访问远程服务器----郑建营 2、 书写触发器; 例如: CREATE TRIGGER [test_user] ON [dbo].[user] FOR INSERT, UPDATE AS set xact_abort on update b s...