将Identity_insert设置为 - 合并复制

时间:2009-03-12 13:56:18

标签: sql-server sql-server-2005 replication merge-replication

我在两个数据库之间设置了合并复制,并在两者上使用了标识范围。

我想在发布者上将特定行添加到合并表(将标识值设置为标识范围之外的内容)。当我尝试这个时,我收到以下错误。

  

插入失败。它与身份范围检查相冲突   数据库'xxx'中的约束,复制表'dbo.yyy',列   'yyy_id'。如果标识列由自动管理   复制,更新范围如下:对于Publisher,执行   sp_adjustpublisheridentityrange;对于订阅者,运行   分发代理或合并代理。

有没有办法强制将特定身份值放入使用身份范围管理的合并复制表?

2 个答案:

答案 0 :(得分:3)

一种方法是确保复制拓扑中的每个节点使用不同范围的标识值,以便不会发生重复。

  

例如,发布者可以是   分配范围1-100,订户A.   范围101-200和订户B.   范围201-300。如果是一行   插入发布者和   身份价值是,例如,65,   该值被复制到每个   订户。复制插入时   每个订阅者的数据,它没有   增加标识列值   订阅者表;相反,   插入文字值65。只要   用户插入,但不是复制   代理插入导致身份   要递增的列值。

参考。 Replicating Identity Columns

答案 1 :(得分:0)

我已解决通过增加20000 row增加自动插入。 Helpful blog added here