局域网内服务器之间数据的同步

局域网内服务器之间数据的同步

ID:34464392

大小:85.24 KB

页数:30页

时间:2019-03-06

局域网内服务器之间数据的同步_第1页
局域网内服务器之间数据的同步_第2页
局域网内服务器之间数据的同步_第3页
局域网内服务器之间数据的同步_第4页
局域网内服务器之间数据的同步_第5页
资源描述:

《局域网内服务器之间数据的同步》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、局域网内两个数据库表之间数据联动:当两个数据库不在同一台服务器(在局域网内),怎样使一个数据库中表的数据发生变化另一个库中的数据跟着一起变化,用存储过程或者触发器SQLcode--定时同步服务器上的数据--例子:--测试环境,SQLServer2000,远程服务器名:xz,用户名为:sa,无密码,测试数据库:test--服务器上的表(查询分析器连接到服务器上创建)createtable[user](idintprimarykey,numbervarchar(4),namevarchar(10))go--以下在局域网(本机操作)--本机

2、的表,state说明:null表示新增记录,1表示修改过的记录,0表示无变化的记录ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[user]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[user]GOcreatetable[user](idintidentity(1,1),numbervarchar(4),namevarchar(10),statebit)go--创建触发器,维护state字段的值createtrigg

3、ert_stateon[user]afterupdateasupdate[user]setstate=1from[user]ajoininsertedbona.id=b.idwherea.stateisnotnullgo--为了方便同步处理,创建链接服务器到要同步的服务器--这里的远程服务器名为:xz,用户名为:sa,无密码ifexists(select1frommaster..sysserverswheresrvname='srv_lnk')execsp_dropserver'srv_lnk','droplogins'goexecs

4、p_addlinkedserver'srv_lnk','','SQLOLEDB','xz'execsp_addlinkedsrvlogin'srv_lnk','false',null,'sa'go--创建同步处理的存储过程ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[p_synchro]')andOBJECTPROPERTY(id,N'IsProcedure')=1)dropprocedure[dbo].[p_synchro]GOcreateprocp_syn

5、chroas--setXACT_ABORTon--启动远程服务器的MSDTC服务--execmaster..xp_cmdshell'isql/S"xz"/U"sa"/P""/q"execmaster..xp_cmdshell''netstartmsdtc'',no_output"',no_output--启动本机的MSDTC服务--execmaster..xp_cmdshell'netstartmsdtc',no_output--进行分布事务处理,如果表用标识列做主键,用下面的方法--BEGINDISTRIBUTEDTRANSACTI

6、ON--同步删除的数据deletefromsrv_lnk.test.dbo.[user]whereidnotin(selectidfrom[user])--同步新增的数据insertintosrv_lnk.test.dbo.[user]selectid,number,namefrom[user]wherestateisnull--同步修改的数据updatesrv_lnk.test.dbo.[user]setnumber=b.number,name=b.namefromsrv_lnk.test.dbo.[user]ajoin[user]

7、bona.id=b.idwhereb.state=1--同步后更新本机的标志update[user]setstate=0whereisnull(state,1)=1--COMMITTRANgo--创建作业,定时执行数据同步的存储过程ifexists(SELECT1frommsdb..sysjobswherename='数据处理')EXECUTEmsdb.dbo.sp_delete_job@job_name='数据处理'execmsdb..sp_add_job@job_name='数据处理'--创建作业步骤declare@sqlvarc

8、har(800),@dbnamevarchar(250)select@sql='execp_synchro'--数据处理的命令,@dbname=db_name()--执行数据处理的数据库名execmsdb..sp_add

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。