SQL Server在已删除的表上进行合并复制期间生成错误

时间:2010-08-20 02:42:16

标签: sql-server replication

我在合并复制数据库中添加了一个表tblJoinCustBlastList,现在我在复制过程中遇到了这个失败错误:

错误讯息:

  

架构脚本'if object_id(N'[dbo]。[tblJoinCustBlastlist]')不是null exec('ALTER TABLE [dbo]。[tblJoinCustBlastlist] ADD CONSTRAINT PK_tblJoinCustBlastlist PRIMARY KEY CLUSTERED(JoinID)WITH(STATISTICS_NORECOMPUTE = OFF ,IGNORE_DUP_KEY = OFF,ALLOW_ROW_LOCKS = ON,ALLOW_PAGE_LOCKS = ON)ON [PRIMARY]

     

')'无法传播给订阅者。 (来源:MSSQL_REPL,错误号:MSSQL_REPL-2147201001)获取帮助:http://help/MSSQL_REPL-2147201001表'tblJoinCustBlastlist'已经在其上定义了主键。 (来源:MSSQLServer,错误号:1779)获取帮助:http://help/1779无法创建约束。查看以前的错误。 (来源:MSSQLServer,错误号码:1750)获取帮助:http://help/1750

所有帮助链接都已死亡。导致复制失败的表(rblJoinCustBlastList)只有3个字段:

JoinID -int-主键 - 无空值

fkCustID - int- no nulls

fkBlastListID - int- no nulls

和系统创建的字段Rowguid - uniqueidentifier

对于我自己的故障排除,我从要复制的文章中删除了这个表,然后我甚至从数据库中删除了整个表。当我再次尝试同步以查看错误是否清除时,我得到了完全相同的消息!为什么它在一个甚至不应该复制的表上给我一个错误,甚至被删除了?我该如何解决这个问题?请帮助一个新手,我的用户现在都不能同步...

2 个答案:

答案 0 :(得分:0)

这不是问题的完美答案,但最简单的解决方案可能是从新的快照开始,然后将其推送给主机。

当你有很多复制主机时,我发现Merge经常会进行循环,所以如果你在制作一个新的快照时没有以新的快照开始,那么从服务器添加/删除的更改将会在一个圆周内循环架构变化。

错误是

MSSQL_REPL-2147201001 - 无法为临时快照文件创建目录 1779 - 当您尝试将主键添加到具有一个主键的表时,该消息 1750 - 当您尝试创建约束时失败的消息

答案 1 :(得分:0)

我通过从订户中删除表tbljoincustblastlist来修复它。我从发布者那里删除了这个表,但是没有从订阅者那里删除它并且它以某种方式导致错误,我认为它与主键约束有关。呼!