SQL间的两个数据库表的同步更新

SQL间的两个数据库表的同步更新,第1张

我问问,你B2表中的内容还需要1月的内容么?仅仅是从2月开始?

Ans:你在往A中插入数据的时候自己要判断一下当前月份,如果是同一个月就把数据分别插入到A和B中。到了下个月之后,继续插入A的原表,但是B中新建一表来插入数据。

还有个疑问就是,你希望用代码实现还是其他?

可以通过sql触发器来实现。

例下列触发器代码 :

create trigger tri_kszb_inserton ygpx_kszb -- *** 作的表名for insert --给表插入一条数据的时候触发asdeclare @kssj datetime declare @sqbh char(40)select @kssj = kssj,@sqbh = sqbh from inserted --把插入的数据的保存到变量insert into ygpx_kszb2 values (@kssj,@sqbh) --同步插入到另一表

有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。

1在Oracle中建立对应的contract 和 contract_project表,需要同步哪些字段我们就建那些字段到Oracle表中。

这里需要注意的是Oracle的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关系拉?我们可以在SQLServer下运行:

SELECT

FROM msdbdboMSdatatype_mappings

SELECT

FROM msdbdbosysdatatypemappings

来查看SQLServer和其他数据库系统的数据类型对应关系。第一个SQL语句是看SQL转Oracle的类型对应,而第二个表则更详细得显示了各个数据库系统的类型对应。根据第一个表和我们的SQLServer中的字段类型我们就可以建立好Oracle表了。

SQLServer和Oracle的对应

2建立链接服务器。我们将Oracle系统作为SQLServer的链接服务器加入到SQLServer中。

具体做法参见我以前的文章>

同一服务器的不同数据库间可以直接访问,比如两个数据库DB1,DB2

当前连接的是DB1,可以用 select from db2dbotable1 来访问DB2的表。 其中dbo是数据库所有者,默认为dbo。 还需要连接DB1的用户对两个数据库都有权限。

关于同步,延迟的方法比较单一,做一个存储,加在作业里,定时调用即可。

即时的可以分两种思路,第一可以用触发器的方式,在db1中需要同步的表里,创建触发器,当有数据 *** 作的时候触发,同步数据。

第二种思路,是前台事务 *** 作db1的数据表的时候,同时写db2的数据表,两个 *** 作放在同一个事务中。

两种方法各有好处,个人推荐第一种。

以上思路基于sql server 2005,之后的版本了解不够多,不知道有没有出什么更好的工具啥的。

机器A、B分别新建标准用户repluser,用于访问初始快照共享文件。

机器A新建X_DB数据库,表persion

选择复制菜单->本地发布,右键新建发布,next->选择数据库X_DB

选择发布类型,这里有四种:快照发布、事务发布、可更新订阅的事务发布、合并发布。快照发布和合并发布都是定期取数据,不同的是合并发布可独立更新,可把订阅端的数据更新同步到发布端;测试发现如果两端同时更新,发布端的更新会覆盖掉订阅端的更新。事务发布是事务驱动,只要有更新,立马同步更新。

这里我选择事务同步->next

选择需要复制的表,这里有个限制:只有带主键的表才能复制一路next

设置代理账号,next。最后输入发布名称,发布成功

选择刚才创建的发布,右键属性,选择快照设置共享路径;也可以选择FTP快照进行FTP共享。这样订阅端就访问这个路径读取初始快照。至此发布端设置完成。

机器B订阅端选择复制->本地订阅-》新建订阅。

选择发布服务器,选择x_db下的x_db_publish

没有x_db,可以自己创建数据库。设置分发与订阅账号。

以上就是关于SQL间的两个数据库表的同步更新全部的内容,包括:SQL间的两个数据库表的同步更新、sql server2012高可用性多个数据库之间怎么同步、Oracle与SQL Server如何实现表数据同步等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9418418.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存