none
同步复制之后,订阅数据库的标识列起始值为什么又变成1了 RRS feed

  • 问题

  • 我用SQL Server 2005 中文版进行数据库同步,复制的方式是事务复制,主动推送。
    复制成功后,能正确验证,发布数据库上改动,订阅数据库上也有改动。

    但是发现一个问题,
    由于发布数据库上,表主键是标识列,起始值和自增量都是默认的1,表里也有一些数据,标识的‘不可复制’项,是‘否’
    在订阅数据库上,就不能正常进行数据记录的增加,会提示主键重复。
    我去除主键后发现,主键的ID值是从1开始增加的,当然就跟已经存在的ID值重复了。如下
    eID eData
    1
    2
    3
    4
    2

    这样的情况,不管是同步状态还是两边都删除同步后,都存在。
    很明显是一个比较严重的问题了,
    不知道哪位达人也碰到过类似问题。

    网上我也查过,可以用DBCC CHECKIDENT ('table_name', RESEED)命令来把标识列的ID改成从当前最大值开始计数,
    但也是后期补救,又麻烦。

    有没有在同步配置的时候,或者什么时候的方法能避免这个问题呢。
    望各位达人不吝赐教,多谢多谢!
    2011年6月27日 3:42

答案

全部回复