重复的主键 sql

duplicate primary key sql

这似乎是

我会给出一些背景知识。首先,我使用的是 SQL Express。其次,我正在使用导入和导出向导。三、源文件是文本文件。第四,我已经成功地导入了这个文件的另外两个版本,FIRMS。 2017q2 和 2013q2 进口罚款但 2013q1 不会。原因是重复的主键错误。

我的主键是 stateaccountunityrqtr。还有 25 个其他外键。示例数据如下。

可以说,错误消息产生了一个令人反感的值。我在 excel 和记事本 ++ 中找到了该值。然而,当我挖掘时,我发现这四个的组合只发生一次。

作为进一步的测试,在 excel 中,我将四个主键值连接到一个字段中,然后在连接(组合)值中搜索重复项。 Excel 显示结果,但当您查看它们时,它们并不相同。每个被视为重复的项目的单位编号不同。我注意到当 name1 (不是主键)有超过 1 个值时, excel (和 SQL 我认为)认为它是重复的。我仅使用 excel 作为查找重复项的工具。

state   area    account    unit     yrqtr     name1     name2
  32   000001    12345    00001     201301    bakery    xyz bakery
  32   000003    12346    00001     201301    auto      xyz auto

至于 SQL,我将 201301 作为负载 table 导入,而不是将其附加到 FIRMS。从那里,我使用了以下代码。结果没有结果。最后,我查看了 201702 和 201302,没有发现重复项

select state,account,unit,yrqtr
from dbo.201301
Group by state,account,unit,yrqtr
having count(*) >1

关于如何解决这个看似不存在的重复项的问题有什么想法吗?

获取目标的空副本 table,禁用主键和外键,将所有文件导入该 table 和 运行 查询以检查重复数据。这可能会揭示数据是否在导入过程中被修改。

SELECT state, account, unit, yrqtr, COUNT(*) AS dups 
FROM TableCopy 
GROUP BY state, account, unit, yrqtr 
HAVING COUNT(*) > 1