我已经设置了事务复制,并且由于带宽限制而允许从备份初始化(因此不会生成快照)。现在,当在数据库中插入数据的应用程序启动时,我们会在Publication数据库上出现此错误(好吧,它会运行一小段时间,然后会因错误而停止)。复制监视器不显示任何错误,因此发布和订阅数据库之间不一致。也不关心自动生成的ID(即使用Identity列),因为该表依赖于日期戳作为PK。错误是:
System.Data.SqlClient.SqlException:违反PRIMARY KEY约束''。无法在对象中插入重复键 'DBO。'。声明已经终止。
复制设置是否可以对源/发布数据库执行某些操作?这可能是由订户数据库的高延迟引起的吗?由于我没有在复制监视器中看到错误,我甚至不确定在继续复制设置时是否出现此错误。
如何解决此问题?
答案 0 :(得分:0)
<强> 1。确保使用PK中的复制设置创建要复制的表/文章
之前:
CREATE TABLE [dbo].[mytable](
[mytableID] [BIGINT] IDENTITY(1,1) NOT NULL,
之后:
CREATE TABLE [dbo].[mytable](
[mytableID] [BIGINT] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
你也必须对外键做同样的事情
<强> 2。复制监视器应显示错误消息