sqlserver跨服务器触发器的写法_第1页
sqlserver跨服务器触发器的写法_第2页
sqlserver跨服务器触发器的写法_第3页
sqlserver跨服务器触发器的写法_第4页
sqlserver跨服务器触发器的写法_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、跨服务器的触发器书写方法引言:电子病历的病人的基本信息,来源于HIS系统的病人基本信息。两个数据库的信息交互,通过HIS表的触发器来实现。但是伴随着业务的增长,HIS数据库和病历数据库可能会部署到不同的服务器上,因此,两个库之间的触发器,必须能满足跨服务器的访问。书写跨服务器的数据访问,必须要对两台服务器进行相关配置和建立远程服务连接(分布事务),具体实施步骤如下:一、启用远程分布式服务1、打开控制面板,找到管理工具,双击打开,如图:疗件夹名称蘭性罷邳数据CODEC)制事件查看黠器订算肌管理噬农击打开服勞謨本地安全策略启动“DistributedTransactionCoordinator服务

2、,见下图2、设置MSDTC选项在管理工具中,找到组建服务,双击打开,找到“我的电脑”鼠标右键点击,选择“属性”如图:打开窗口后,选择选择“MSDTC选项卡点击“安全性配置”按钮,网络DTC访问勾选上,允许远程客户端,允许远程管理,允许入站,允许出站,不要求身份验证勾选上。1、以上步骤需要两台服务器都必须配置。2、启动分布式服务后还要打开远程服务器以及本地服务器135端口,因为远程分布式服务需要该端口通讯。启用通讯端口方法看下节。、启用通讯端口1、打开控制面板,找到管理工具,双击打开,如图:2、启用防火墙,点击例外,点击添加程序。找到路径下:C:WINDOWSsystem32msdtc.exe选

3、中:msdtc.exe藜Windows防火堵11PCEniiteCTOQ201U_13、添加端口135点击添加端口,如图增加135端口。潺加程序迅)兮口(q2)编辑II删除ZindoWS防火墙阻止稈序时通知我允许例外存在什么凤险?确定取消注意:1、以上步骤需要两台服务器都必须配置。三、建立两台服务器的连接1、建立互访连接execsp_addlinkedserveremr_server,SQLOLEDB,0-创建服务器连接execsp_addlinkedsrvloginemr_server,false,null,sa,146-164-152-仓U建登陆sp_dropserv

4、erhis,droplogins-删除服务器连接和登陆,再也不使用了,可以删除。0:目标服务器,即需要连接的远程服务器名称或IP,即电子病历服务器的名称或IP2、书写触发器;例如:CREATETRIGGERtest_userONdbo.userFORINSERT,UPDATEASsetxact_abortonupdatebsetname=fromhis.emrdb.dbo.userb,insertediwhereb.id=i.id完成上述三大步骤即可完成触发器的跨服务器访问。四、远程触发器访问示例:-新增同步createtriggertr_insert_aut

5、horonauthorforinsertassetxact_abortoninsertsrv2.库名.dbo.author(id,name,telphone)selectid,name,telphonefrominsertedgo-修改同步createtriggertr_update_authoronauthorforupdateassetxact_abortonupdatebsetname=,telphone=i.telphonefromsrv2.库名.dbo.authorb,insertediwhereb.id=i.idgo-删除同步createtriggertr_delete

6、_authoronauthorfordeleteassetxact_abortondeletebfromsrv2.库名.dbo.authorb,deleteddwhereb.id=d.idgo-连接远程/局域网数据(openrowset/openquery/opendatasource)-1、openrowset-查询示例select*fromopenrowset(SQLOLEDB,sql服务器名;用户名;密码,数据库名.dbo.表名)-生成本地表select*into表fromopenrowset(SQLOLEDB,sql服务器名;用户名;密码,数据库名.dbo.表名)-把本地表导入远程表i

7、nsertopenrowset(SQLOLEDB,sql服务器名;用户名;密码,数据库名.dbo.表名)select*from本地表-更新本地表updatebsetb.列A=a.列Afromopenrowset(SQLOLEDB,sql服务器名;用户名;密码,数据库名.dbo.表名)asainnerjoin本地表bona.column1=b.column1-openquery用法需要创建一个连接-首先创建一个连接创建链接服务器execsp_addlinkedserverITSV,SQLOLEDB,远程服务器名或ip地址-查询select*FROMopenquery(ITSV,SELECT*FROM数据库.dbo.表名)-把本地表导入远程表insertopenquery(ITS4SELECT*FROM数据库.dbo.表名)select*from本地表-更新本地表updatebsetb.列B=a.列BFROMopenquery(ITSV,SELECT*FROM数据库.dbo.表名)asainnerjoin本地表bona.列A=b.列A-3、opendatasource/openrowsetSELECT*FROMopendatasource(SQLOLEDB,DataSource=ip/ServerName;UserID=登陆名;Password=密码).tes

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论