这似乎是重复的 SQL Server : Duplicate Primary Key error。
我会给出一些背景知识。首先,我使用的是SQL Express。其次,我正在使用导入和导出向导。第三,源文件是文本文件。第四,我已成功导入此文件的两个其他迭代,FIRMS。 2017q2和2013q2进口罚款但2013q1不会。原因是重复的主键错误。
我的主要密钥是state
,account
,unit
和yrqtr
。还有25个其他外键。样本数据如下。
错误消息会产生违规值,可以这么说。我在excel和notepad ++中找到了这个值。然而,当我挖掘时,我发现这四者的组合只发生过一次。
作为进一步的测试,在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作为各种加载表,而不是将其附加到FIRMS。从那里,我使用以下代码。它没有结果。最后,我查看了201702和201302,发现没有重复
select state,account,unit,yrqtr
from dbo.201301
Group by state,account,unit,yrqtr
having count(*) >1
那么关于我如何解决看似不存在的重复问题的任何想法?
答案 0 :(得分:0)
获取目标表的空副本,禁用主键和外键,将所有文件导入该表并运行查询以检查重复数据。这可能会揭示在导入过程中是否正在修改数据。
SELECT state, account, unit, yrqtr, COUNT(*) AS dups
FROM TableCopy
GROUP BY state, account, unit, yrqtr
HAVING COUNT(*) > 1