SQL间的两个数据库表的同步更新
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL间的两个数据库表的同步更新相关的知识,希望对你有一定的参考价值。
比如说我有一个数据库A,里面有表TABLE有一些字段,字段其中包括时间字段,时间字段产生的记录都是按照系统时间来的,我想把这个数据库中的表同步复制到另外一个数据库B中去,要求在B中产生表B1,B2,B3,。。。。B12,就是把原来表的数据分为12个表,
比如现在是1月,那么到一月底,A中的表TABLE和B中的B1表应该是一模一样的,但是2月来的,B1的内容就不增加了,继续在B2表中将TABLE的记录复制过来
下面那位朋友说的方法不行,用触发器跨服务器操作的表。容易出现连接问题,。一出现连接问题,当时的那些记录就没有了,
简单点描述问题就是,一个前置机采集的数据在他的服务器上,主要是要把里面一张表的(含有时间字段),
就是把这个表同步更新到另外的服务器数据库中。但是按时间分为12张表,一年的
Ans:你在往A中插入数据库的时候自己要判断一下当前月份,如果是同一个月就把数据分别插入到A和B中。到了下个月之后,继续插入A的原表,但是B中新建一表来插入数据。
还有个疑问就是,你希望用代码实现还是其他? 参考技术B 可以利用触发器实现,在insert 触发器中,使用inserted表根据你的条件,将数据分别保存在不同的表中
insert b1
select * from inserted
where datepart(mm,datefield)= 1
insert b2
select * from inserted
where datepart(mm,datefield)= 2
SQL Server - 同步两个数据库
【中文标题】SQL Server - 同步两个数据库【英文标题】:SQL Server - Syncing two database 【发布时间】:2009-01-15 17:19:50 【问题描述】:我们有一个仓库数据库,其中包含到目前为止一年的数据。我想创建代表过去 3 个月数据的报告数据库以用于报告目的。我希望能够使两个数据库保持同步。现在,我每 10 分钟执行一次包,该包将从仓库中获取最新的行并将它们添加到报告数据库中。问题是我只得到新行而不是新更新。
我想知道解决这种情况的各种方法。
谢谢
【问题讨论】:
【参考方案1】:研究复制、镜像或日志传送
【讨论】:
我已经准备好复制、镜像等。他们谈到了 2 个独立的数据库服务器。我需要在同一台服务器上同步两个数据库。使用您所说的技术,这仍然可能吗? 是的,您可以在同一台服务器上的两个数据库之间进行复制。【参考方案2】:如果您使用的是 SQL 2000 或更低版本,复制是您的最佳选择。由于您每十分钟执行一次,因此您绝对应该查看事务复制。
如果您使用的是 SQL 2005 或更高版本,则可以使用更多选项。 SQLMenace 上面建议的数据库快照、日志传送和镜像。这些的适用性取决于您的硬件。您必须进行一些研究才能选择最适合您需求的产品。
【讨论】:
【参考方案3】:您可能应该阅读有关复制的信息,或询问您的数据库管理员。
【讨论】:
【参考方案4】:是否可以向该数据库添加列?您可以将 Last_Activity 列添加到数据库并编写一个触发器来更新该行上的日期/时间戳以反映最新的编辑。对于任何新条目,日期/时间将反映添加行时的时间戳。
这样,当您抓取过去三个月时,您将抓取过去三个月的活动,而不仅仅是新的东西。
【讨论】:
这是一个有趣的解决方案。不过,我将不得不给这个。以上是关于SQL间的两个数据库表的同步更新的主要内容,如果未能解决你的问题,请参考以下文章