将Identity_insert设置为 - 合并复制

Pau*_*ann 13 sql-server replication sql-server-2005 merge-replication

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

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

插入失败.它与数据库'xxx'中的标识范围检查约束冲突,复制表'dbo.yyy',列'yyy_id'.如果通过复制自动管理标识列,请按如下所示更新范围:对于Publisher,执行sp_adjustpublisheridentityrange; 对于订阅服务器,运行分发代理程序或合并代理程序.

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

Mit*_*eat 3

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

例如,可以为发布者分配范围 1-100,为订阅者 A 分配范围 101-200,为订阅者 B 分配范围 201-300。如果在发布服务器上插入一行并且标识值为(例如)65,则该值将复制到每个订阅服务器。当复制在每个订阅服务器上插入数据时,它不会增加订阅服务器表中的标识列值;相反,会插入文字值 65。只有用户插入(而非复制代理插入)会导致标识列值递增。

参考号 复制标识列