设置身份插入-合并复制

问题描述 投票:13回答:2

我在两个数据库之间建立了合并复制,并且正在两个数据库上使用标识范围。

我想在发布者上向合并表添加特定行(将标识值设置为标识范围之外的值)。尝试此操作时,出现以下错误。

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

是否有一种方法可以使用身份范围管理将特定的身份值强制到合并复制表中?

sql-server sql-server-2005 replication merge-replication
2个回答
3
投票

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

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

参考Replicating Identity Columns


0
投票

我已经解决了通过增加20000行来增加自动插入的问题。https://www.mssqltips.com/sqlservertip/6093/sql-server-merge-replication-identity-range-management/

© www.soinside.com 2019 - 2024. All rights reserved.