我在两个数据库之间设置了合并复制,并在两个数据库上使用身份范围。
我想将特定行添加到发布者上的合并表(将标识值设置为标识范围之外的值)。当我尝试此操作时,出现以下错误。
The insert failed. It conflicted with an identity range check constraint in database 'xxx', replicated table 'dbo.yyy', column 'yyy_id'. If the identity column is automatically managed by replication, update the range as follows: for the Publisher, execute sp_adjustpublisheridentityrange; for the Subscriber, run the Distribution Agent or the Merge Agent.
有没有办法强制将特定标识值放入使用标识范围管理的合并复制表中?
最佳答案
一种方法是确保复制拓扑中的每个节点都使用不同范围的标识值,以便不会发生重复。
For example, the Publisher could be assigned the range 1-100, Subscriber A the range 101-200, and Subscriber B the range 201-300. If a row is inserted at the Publisher and the identity value is, for example, 65, that value is replicated to each Subscriber. When replication inserts data at each Subscriber, it does not increment the identity column value in the Subscriber table; instead, the literal value 65 is inserted. Only user inserts, but not replication agent inserts cause the identity column value to be incremented.
关于sql-server - 将 Identity_insert 设置为 on - 合并复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/638714/