我已经在两个数据库之间建立了合并复制,并且在这两个数据库之间使用了标识范围.
我想将一个特定的行添加到合并表(将身份值设置为身份范围之外)在发布者上.当我尝试这个,我得到以下错误.
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.
参考. Replicating Identity Columns (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|