无法使用SSIS将数据从Excel加载到SQL中

我试图用SSIS包导入一个excel文件到SQL服务器,但是每次我尝试上传这个文件时,最后的一些行都没有上传,准确的说55107应该被上传,但是只有54990被上传。 117行正在产生一些问题,我无法弄清楚为什么这样。 请帮我理解这个错误信息,以便我可以解决这个问题。 以下是我收到的错误消息:

SSIS包“C:\ Users \ A670814 \ Documents \ Visual Studio 2015 \ Projects \ Integration Services Project1 \ Integration Services Project1 \ NDCS Towers.dtsx”开始。 信息:NDCS塔上的0x4004300A,SSIS.Pipeline:validation阶段开始。

信息:NDCS塔上的0x4004300A,SSIS.Pipeline:validation阶段开始。 警告:0x80049304在NDCS塔,SSIS.Pipeline:警告:无法打开全局共享内存与性能DLL进行通信; 数据stream性能计数器不可用。 要解决此问题,请以pipe理员身份或系统控制台运行此程序包。 信息:NDCS塔上的0x40043006,SSIS.Pipeline:准备执行阶段开始。 信息:NDCS塔上的0x40043007,SSIS.Pipeline:预执行阶段开始。 信息:NDCS塔上的0x4004300C,SSIS.Pipeline:执行阶段开始。 错误:NDCS塔上的0xC0202009,OLE DB目标[280]:SSIS错误代码DTS_E_OLEDBERROR。 发生OLE DB错误。 错误代码:0x80004005。 OLE DBlogging可用。
源:“Microsoft SQL Server本机客户端11.0”Hresult:0x80004005描述:“未指定的错误”。 错误:NDCS塔上的0xC020901C,OLE DB目标[280]:OLE DB Destination.Inputs [OLE DB目标input] .OLP DB Destination.Inputs [OLE DB目标input]上的[复制ID]。 返回的列状态是:“该值违反了该列的完整性约束”。

错误:0xCS0209029 NDCS塔,OLE DB目标[280]:SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “OLE DB Destination.Inputs [OLE DB目标input]”失败,因为发生了错误代码0xC020907D,“OLE DB Destination.Inputs [OLE DB目标input]”上的错误行部署指定错误失败。 指定组件的指定对象发生错误。 在此之前可能会发布错误消息,提供有关失败的更多信息。

错误:NDCS塔上的0xC0047022,SSIS.Pipeline:SSIS错误代码DTS_E_PROCESSINPUTFAILED。 当处理input“OLE DB目的地input”(293)时,组件“OLE DB目的地”(280)上的ProcessInput方法失败,错误代码为0xC0209029。 标识的组件从ProcessInput方法返回一个错误。 错误是特定于组件的,但错误是致命的,并且会导致数据stream任务停止运行。 在此之前可能会发布错误消息,提供有关失败的更多信息。

错误:NDCS塔处的0xC02020C4 Excel源[156]:向数据stream任务缓冲区添加行的尝试失败,错误代码为0xC0047020。 错误:NDCS塔上的0xC0047038,SSIS.Pipeline:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。 Excel Source上的PrimeOutput方法返回错误代码0xC02020C4。 pipe道引擎调用PrimeOutput()时,组件返回失败代码。 失败代码的含义由组件定义,但错误是致命的,并且pipe道停止执行。 在此之前可能会发布错误消息,提供有关失败的更多信息。 信息:NDCS塔上的0x40043008,SSIS.Pipeline:Post Execute阶段开始。 信息:0x4004300B在NDCS塔上,SSIS.Pipeline:“OLE DB Destination”写了55107行。 信息:0x40043009在NDCS塔,SSIS.Pipeline:清理阶段正在开始。 任务失败:NDCS塔

警告:0x80019002在NDCS塔:SSIS警告代码DTS_W_MAXIMUMERRORCOUNTREACHED。 执行方法成功,但引发的错误数(6)达到允许的最大值(1); 导致失败。 当错误数量达到MaximumErrorCount中指定的数量时,会发生这种情况。 更改MaximumErrorCount或修复错误。

SSIS包“C:\ Users \ A670814 \ Documents \ Visual Studio 2015 \ Projects \ Integration Services Project1 \ Integration Services Project1 \ NDCS Towers.dtsx”已完成:失败。

OLE DB Destination.Inputs [OLE DB目的地input] .Columns OLE DB Destination.Inputs [OLE DB目的地input]上的[ID的副本]发生错误。 返回的列状态是:“该值违反了该列的完整性约束”。

它看起来有很多行[Copy of ID]列是空的,或者在SQL Server的[Copy of ID]列中有一些在excel文件的某些行中被违犯的约束。

尝试删除[Copy of ID]列中不包含数据的行,或者可以通过添加一个条件拆分组件并过滤以下代理来过滤它们

 ISNULL([Copy of ID]) 

或者您可以使用Sql server management studio访问目标SQL表,并转到SQL表devise模式,并选中Allow null [Copy of ID]

类似的问题有很多有用的答案: 该值违反了列的完整性约束