MSSQL 同一服务器不同数据库间表数据同步,有什么好的方法,分两种吧,即时的和延迟的
3个回答
展开全部
同一服务器的不同数据库间可以直接访问,比如两个数据库DB1,DB2
当前连接的是DB1,可以用 select * from db2.dbo.table1 来访问DB2的表。 其中dbo是数据库所有者,默认为dbo。 还需要连接DB1的用户对两个数据库都有权限。
关于同步,延迟的方法比较单一,做一个存储,加在作业里,定时调用即可。
即时的可以分两种思路,第一可以用触发器的方式,在db1中需要同步的表里,创建触发器,当有数据操作的时候触发,同步数据。
第二种思路,是前台事务操作db1的数据表的时候,同时写db2的数据表,两个操作放在同一个事务中。
两种方法各有好处,个人推荐第一种。
以上思路基于sql server 2005,之后的版本了解不够多,不知道有没有出什么更好的工具啥的。
当前连接的是DB1,可以用 select * from db2.dbo.table1 来访问DB2的表。 其中dbo是数据库所有者,默认为dbo。 还需要连接DB1的用户对两个数据库都有权限。
关于同步,延迟的方法比较单一,做一个存储,加在作业里,定时调用即可。
即时的可以分两种思路,第一可以用触发器的方式,在db1中需要同步的表里,创建触发器,当有数据操作的时候触发,同步数据。
第二种思路,是前台事务操作db1的数据表的时候,同时写db2的数据表,两个操作放在同一个事务中。
两种方法各有好处,个人推荐第一种。
以上思路基于sql server 2005,之后的版本了解不够多,不知道有没有出什么更好的工具啥的。
展开全部
建一个dblink,然后互相之间查询,更新什么的就很方便了
配置SQLSERVER数据库的DBLINK的例子
exec sp_addlinkedserver @server='WAS_SMS',@srvproduct='',@provider='SQLOLEDB',@datasrc='10.131.20.100'
exec sp_addlinkedsrvlogin 'WAS_SMS','false', NULL,'CustomSMS','SqlGdn@InfoxMas2008'
select top 100 * from AS400.AS400_Extract.DBO.ORDUNA
配置SQLSERVER数据库的DBLINK的例子
exec sp_addlinkedserver @server='WAS_SMS',@srvproduct='',@provider='SQLOLEDB',@datasrc='10.131.20.100'
exec sp_addlinkedsrvlogin 'WAS_SMS','false', NULL,'CustomSMS','SqlGdn@InfoxMas2008'
select top 100 * from AS400.AS400_Extract.DBO.ORDUNA
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己写一个同步的程序
如果表结构相同,就比较简单。如果不同,就麻烦些。
做一个客户端定时同步就可以。
如果表结构相同,就比较简单。如果不同,就麻烦些。
做一个客户端定时同步就可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询