从Excel文件导入SQL Server 2008 R2中的表时出错

时间:2015-02-16 14:49:14

标签: sql-server excel sql-server-2008-r2

从Excel文件导入SQL Server 2008 R2中的表时,出现此错误。

我添加了一张图片。

  

复制到[dbo]。[MultiPLU](错误)消息错误0xc0202009:数据   流程任务1:SSIS错误代码DTS_E_OLEDBERROR。 OLE DB错误   发生。
  错误代码:0x80004005。 OLE DB记录可用   来源:" Microsoft SQL Server Native Client 10.0"
  Hresult:0x80004005   说明:"声明已终止。"。

     

OLE DB记录可用   来源:" Microsoft SQL Server Native Client 10.0"
  Hresult:0x80004005
  说明:"无法将值NULL插入列' PLUCode',table' AR4UWin.dbo.MultiPLU&#39 ;;列不允许空值。 INSERT失败。"。
  (SQL Server导入和导出向导)

     

错误0xc0209029:数据流任务1:SSIS错误代码   DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 "输入"目的地输入"   (57)"失败,因为错误代码0xC020907B发生,错误行   处置"输入"目的地输入" (57)"指定失败   错误。指定的指定对象发生错误   零件。在此之前可能会发布错误消息   有关失败的信息   (SQL Server导入和导出向导)

     

错误0xc0047022:数据流任务1:SSIS错误代码   DTS_E_PROCESSINPUTFAILED。组件上的ProcessInput方法   "目的地 - MultiPLU" (44)失败,错误代码为0xC0209029   处理输入"目的地输入" (57)。确定的组件   从ProcessInput方法返回错误。错误是特定的   到组件,但错误是致命的,将导致数据流   任务停止运行。在此之前可能会发布错误消息   有关失败的更多信息。

(SQL Server导入和导出向导)

2 个答案:

答案 0 :(得分:0)

导入过程需要“PLUCode”列中每一行的值,而我相信您的Excel电子表格有时在这些单元格中没有值。

答案 1 :(得分:0)

右键单击PLUCode并将其设置为允许空值将允许您上传表格。下面的查询将为您提供错误的评论条目。

SELECT *
FROM Tablename
WHERE PLUCode IS NULL

如果您正在处理重复项,我建议您自行加入,只为您提供唯一的行。 (你需要一些'if'语句来检查具有空值的行,这样你就不会删除整个记录并留下破坏的记录。)我会非常小心地使用任何预定义的删除重复项功能(如在excel中)除非你仔细检查表格以确保它不会丢弃已完成的行。

编辑:要响应保存为平面文件的需要,您需要将其另存为逗号分隔的csv文件。它是通常的文件格式列表,除非您使用excel 2010,它将在“保存并发送”选项下。