日期:2014-05-17  浏览次数:20439 次

两数据库表的合并复制出问题,求指教
异地A,B两个数据库做合并复制,表结构是相同的。表里面都有ID的字段,按照数据的增加ID字段做递增。
问题是现在同步完之后,程序出现问题了。

例如:
同步前两个表都有3条数据,三条数据记录的ID为1,2,3.
经用户对程序的使用,向数据库添加数据后:
A表添加了3条数据,ID变成1,2,3,4,5,6。
B表添加了10条数据,ID变成1,2,3,4,5,6,7,8,9,10,11,12,13。
合并复制完之后,A,B两个表在数据库里最大的ID都为13

出现的问题是:
向B表添加数据就没有问题,ID是按照14,15,16...这样递增。
但是向A表添加新数据的时候,ID还是按照合并复制之前的最大ID递增的(按照4,5,6这样,数据库最大的ID实际已经是13了),这样属于A表的用户群使用的程序就会出问题。

因为不可能修改程序,所以想从SQL想想能不能解决?

目的还是希望两个表的数据同步,但又不能出错,请指教 
------最佳解决方案--------------------
Set IDENTITY_INSERT on
------其他解决方案--------------------
怎么不用同一个数据库。触发器?

坐等高手解答
------其他解决方案--------------------
不太明白你这个是怎么复制的,还有如果是两个表同步两个表的话。那应该是每个表都有自己的ID吧,怎么不一样?是没有合并对吧?
为什么不能用事务复制呢?
------其他解决方案--------------------
不同的表自然会有identity列递增不同。
在合并复制中,如果是A,B数据库在相同的表,那么A库的表递增值与B库的表递增值范围是不同的。

------其他解决方案--------------------
引用:
Set IDENTITY_INSERT on


晚上试一试这个,希望能解决我的烦恼,先谢谢了