INSERT语句与FOREIGN KEY约束导入数据冲突

时间:2014-06-18 13:55:04

标签: sql-server-2008

我使用Task - Import Data将数据从一个数据库导入到具有相同表结构的另一个数据库。我总是收到错误INSERT statement conflicted with the FOREIGN KEY constraint。我希望当我导入数据时我没有收到此错误。 import like this 。 这可能是我从表中删除所有外键并在导入后运行外键的脚本到表,如果是,我该怎么做。感谢您的回复和评论

1 个答案:

答案 0 :(得分:1)

我建议将原始数据导入到没有FK约束的临时表中。然后,从那里,您可以快速查询暂存区域,并确定哪些值违反了FK约束。

实施例。您创建一个名为tblImport的表,而FK位于字段city上。你的city表只有纽约和洛杉矶,但当你select distinct city from tblImport时,你看到拉斯维加斯也在那里。拉斯维加斯违反了你的约束。然后,您可以将Las Vegas添加到city表中,并在不违反FK约束的情况下导入。

导入最终目的地后,请删除tblImport

我还应该补充一点,你不能放弃FK,导入,然后重新添加FK。重新添加FK的操作将检查约束,并失败。

你需要1)添加一个允许导入的关系条目,如上所述,或者2)写一个满足FK约束的导入脚本,并且只导入存在关系的记录(即它只会进口纽约和洛杉矶)。