这似乎是SQL Server:重复主键错误的副本。
首先,我使用的是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
那么,你有什么想法来解决这个看似不存在重复项的问题吗?
CREATE TABLE
定义是什么? - Dai