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

关于合并复制的ID排序的疑难问题,求解决
A,B两个数据库做合并复制,表结构是相同的。表里面都有ID的字段,按照数据的增加ID字段做递增。
问题是现在同步完之后,ID是错乱的。

例如:
同步前两个表都有10条数据,ID为1,2,3,4,5,6,7,8,9,10.
经操作以后:
A表添加了3条数据,ID变成1,2,3,4,5,6,7,8,9,10,11,12,13
B表添加了10条数据,其间删除了一些,ID变成1,2,3,4,5,6,7,8,9,10,17,18,19,20

同步完之后,A,B两个表都变成了1,2,3,4,5,6,7,8,9,10,11,12,13,17,18,19,20

然后A表再添加新数据的时候序号还是按照最后的ID是13排序递增的,添加一条ID就变成14,这样程序就会出错,有没有办法可以让A表的ID始终是按照最大的ID进行递增,因为不可能修改程序,所以想从SQL想想能不能解决?

目的还是希望两个表的数据同步,但又不能出错,请指教
------最佳解决方案--------------------
有没有办法可以让A表的ID始终是按照最大的ID进行递增

你说的最大ID是什么ID?不是A表的ID而是A表和B表共同的最大ID吗?
------其他解决方案--------------------
引用:
有没有办法可以让A表的ID始终是按照最大的ID进行递增

你说的最大ID是什么ID?不是A表的ID而是A表和B表共同的最大ID吗?



只是A表的就可以了,现在问题是这样,同步前A表的最大ID是13,同步后,从B表同步过来的数据最大ID是20了,然后从程序向A表添加新数据的时候,还是按照(13+1)14进行排序,这样程序就有了错误
------其他解决方案--------------------
还是按照(13+1)14进行排序,这样程序就有了错误 

那不是14应该是多少?你要的这个最大ID到底是多少?
------其他解决方案--------------------
你自己去弄去吧

DBCC CHECKIDENT (表名, RESEED, 最大ID)

------其他解决方案--------------------
该回复于2012-11-26 10:24:42被管理员删除