首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Server :重复主键错误

Server :重复主键错误
EN

Stack Overflow用户
提问于 2017-07-14 21:44:29
回答 1查看 5.6K关注 0票数 0

我使用并通过导入向导导入,因此没有真正提供的代码。

错误显示在这里:

错误0xc0202009:数据流任务1: SSIS错误代码DTS_E_OLEDBERROR。 发生了OLE DB错误。错误代码: 0x80004005。 OLE DB记录是可用的。来源:"Microsoft SQL Server本机客户端11.0“H结果: 0x80004005描述:”语句已被终止“。OLE DB记录是可用的。 来源:“本机客户端11.0” 结果: 0x80004005 说明:“违反主键约束'PK_CXS‘。无法在对象'dbo.cxs’中插入重复键。重复键值为(00,00,000000,2017,03,01,00000000,0)。”

此后,我通过对给定的值进行筛选,在Excel中进行了测试。只有一排出现。我将表示主键的八列连接起来,然后查找重复的列。没有人被发现。接下来,使用记事本中的TextFX工具,我尝试删除重复项,但没有发现任何副本。

还有其他方法可以找到这个看似不存在的复制吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-14 22:16:32

一些建议(这并不是一个完整的答案,但对给定的数据,是我所能做到的)。

在某些情况下,您可能会将数据作为文本(如1.000000001和1.000000002)在文本文件中不同,但由于截断、舍入或其他类型的转换效果,一旦转换成目标类型,数据可能会变成相同的数据。这可能是您无法在文本文件中找到重复项的原因,但是数据库会找到它们。

您可以使用和检查以下几种技术:

  1. 除了输入的数据..。目标表上是否已有以前的数据?如果是这样的话,您就有一个可能的复制源。
  2. 您有任何方法导入“逐行”(或分批),以便帮助您找到违规的?

如果前面的选项都不可能,您可以遵循以下过程:

  • 创建一个结构与目标表相同的表,但没有任何PRIMARY KEYUNIQUE约束。我们叫它load_table
  • 将数据导入此表。它不应该抱怨PRIMARY KEY约束,因为没有任何约束。
  • 执行以下查询以查找重复项: 选择k1,k2,k3 .来自load_table组的kn由k1,k2,k3 .计数(*)>1的kn 其中k1k2k3 . kn是构成目标表主键的所有列。

使用这些技术,您将找到Server找到的复制项,但却没有使用到到现在为止使用过的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45112009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档