0

我的一个事务复制开始抛出错误:

ALTER TABLE 语句与 FOREIGN KEY 约束“FK_Name”冲突。冲突发生在数据库“Database”、表“dbo.table”、列“ID”中。(来源:MSSQLServer,错误号:547)

我已经foreign key从发布者和订阅者中删除了约束,创建了一个新快照并重新初始化了复制,但我仍然遇到同样的错误。

经过一番搜索,我发现有三个表,由复制(在订阅者上)创建:

dbo.MSsavedforeignkeys
dbo.MSsavedforeignkeycolumns
dbo.MSsavedforeignkeyextendedproperties

在其中两个表中,我看到了参考已删除的行FK
我从这些表中删除了行,但仍然出现错误。

知道如何解决这个问题吗?

4

1 回答 1

0

我不建议更改系统表,因为它们高度依赖于彼此。根据您的行为,您可能无法修复。

如果发布者没有发生错误(在您删除约束之前),那么按道理,有人已从订阅者表中删除...如果您可以识别丢失的行,您可以将其重新插入到订阅者,并且复制可能会自行修复。

在这一点上,删除订阅并重新构建它可能更简单、更清晰、更快捷。

于 2014-06-20T19:42:36.430 回答