复制SQL SERVER

复制SQL SERVER,sql,replication,sql-server-2005-express,database-replication,distributed-transactions,Sql,Replication,Sql Server 2005 Express,Database Replication,Distributed Transactions,在我的生产服务器中,我有工作正常的复制,我有分布式数据库,作为2个订阅服务器数据库。 我的数据是从生产环境复制的(工作正常),但 数据被复制到订阅服务器中的分布式数据库,并引发错误 错误消息= 复制分发子系统:PRD01-XYZ-VREPL1\REPL01-25失败。 违反主键约束“PK_供应商”。 无法在对象“dbo.tabname”中插入重复键 我已经有一段时间没有这样做了,但这里有一个尝试 首先,我不介意看到不匹配的记录,所以我会尝试以下方法: --to be run on the pub

在我的生产服务器中,我有工作正常的复制,我有分布式数据库,作为2个订阅服务器数据库。 我的数据是从生产环境复制的(工作正常),但 数据被复制到订阅服务器中的分布式数据库,并引发错误

错误消息=
复制分发子系统:PRD01-XYZ-VREPL1\REPL01-25失败。 违反主键约束“PK_供应商”。
无法在对象“dbo.tabname”中插入重复键

我已经有一段时间没有这样做了,但这里有一个尝试

首先,我不介意看到不匹配的记录,所以我会尝试以下方法:

--to be run on the publisher
select pub.*, sub.*
from 
    db_name1.dbo.tabname pub
    JOIN linked_server_to_subscriber.db_name1.dbo.tabname sub
        ON pub.pk = sub.pk
WHERE
    pub.some_field != sub.some_field
希望对于“some_字段”,有另一个唯一的列,或者可能是输入的dt_,或者可能是rowguid.:)

最后,如果您的情况逻辑涉及将记录插入订阅服务器表而不是通过复制,并且复制的类型不是merge,那么您很可能会继续遇到这样的问题


祝你好运。

Dhivagar:你找到你想要的答案了吗?如果是的话,你能接受吗?如果没有,你能说明你还在寻找什么吗?通常,你提供的信息越多,就越有可能有人能帮助你。