数据导入时违反 PRIMARY KEY 约束错误

Posted

技术标签:

【中文标题】数据导入时违反 PRIMARY KEY 约束错误【英文标题】:Violation of PRIMARY KEY constraint error on import of Data 【发布时间】:2022-01-17 21:25:42 【问题描述】:

我在 SQL Server 中有一个名为 Services 的表。它在 Service_ID 字段上有一个主键。 我删除了一些数据并尝试从 CSV 文件重新导入数据。 我收到以下错误。它提到违反主键。 但是,如果我查询表以搜索具有该 Service_ID 值的记录,那么它不会找到它 - 结果是空的。那么为什么会出现这个错误呢?

复制到 [dbo].[Services](错误) 留言 错误 0xc0202009:数据流任务 1:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。 OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“语句已终止。”。 OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0”Hresult:0x80004005 说明:“违反主键约束“PK_Services”。无法在对象“dbo.Services”中插入重复键。重复键值为 (538629)。”。 (SQL Server 导入和导出向导)

错误 0xc0209029:数据流任务 1:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “Destination - Services.Inputs[Destination Input]”失败,因为发生错误代码 0xC020907B,并且“Destination - Services.Inputs[Destination Input]”上的错误行处置指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。 (SQL Server 导入导出向导)

错误 0xc0047022:数据流任务 1:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。处理输入“目标输入”(103) 时,组件“目标 - 服务”(90) 上的 ProcessInput 方法失败,错误代码为 0xC0209029。已识别的组件从 ProcessInput 方法返回错误。该错误是特定于组件的,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。 (SQL Server 导入导出向导)

错误 0xc02020c4:数据流任务 1:尝试向数据流任务缓冲区添加行失败,错误代码为 0xC0047020。 (SQL Server 导入导出向导)

错误 0xc0047038:数据流任务 1:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。 Source - Services_csv 上的 PrimeOutput 方法返回错误代码 0xC02020C4。当管道引擎调用 PrimeOutput() 时,组件返回了失败代码。失败代码的含义由组件定义,但是错误是致命的并且管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。 (SQL Server 导入导出向导)

【问题讨论】:

【参考方案1】:

重复键在我的导入数据中,而不是表中。

【讨论】:

以上是关于数据导入时违反 PRIMARY KEY 约束错误的主要内容,如果未能解决你的问题,请参考以下文章

违反 PRIMARY KEY 约束。无法插入重复键

交叉应用和外部应用一起使用时违反 PRIMARY KEY 约束

违反 PRIMARY KEY 约束

使用实体框架添加记录时违反链接记录的PRIMARY KEY约束

违反 PRIMARY KEY 约束“PK_EMPLOYEE”。无法在对象中插入重复键

在扩展的 Asp.Net Identity 2 错误中将角色分配给用户违反 PRIMARY KEY 约束“PK_dbo.AspNetUserRoles”