SQLServer2008导入Excel数据报错

zyz_0420 2013-04-14 03:55:55

create table metals
(
company char(10) not null,
category char(20) not null,
subdivide char(20),
broad_heading char(1) not null,
small_category char(2) not null,
material numeric(1,0),
size_range numeric(4,0),
distinguish char(60),
c_code char(8),
coding_note varchar(1000),
primary key(broad_heading,small_category)
)

excel文件:http://pan.baidu.com/share/link?shareid=410092&uk=1745185362" target="_blank">http://pan.baidu.com/share/link?shareid=410092&uk=1745185362

通过导入导出工具导入excel数据时,出现以下错误信息:

操作已停止...

- 正在初始化数据流任务 (成功)

- 正在初始化连接 (成功)

- 正在设置 SQL 命令 (成功)

- 正在设置源连接 (成功)

- 正在设置目标连接 (成功)

- 正在验证 (成功)
消息
* 警告 0x80047076: 数据流任务 1: 数据流任务中后来没有用过输出“Excel 源输出”(9)和组件“源 - metals$”(1)的输出列“F11”(45)。删除此不用的输出列可以提高数据流任务的性能。
(SQL Server 导入和导出向导)


- 准备执行 (成功)

- 执行之前 (成功)

- 正在执行 (成功)

- 正在复制到 [dbo].[metals] (错误)
消息
* 错误 0xc0202009: 数据流任务 1: SSIS 错误代码 DTS_E_OLEDBERROR。出现 OLE DB 错误。错误代码: 0x80004005。
已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 10.0” Hresult: 0x80004005 说明:“未指定的错误”。
(SQL Server 导入和导出向导)

* 错误 0xc020901c: 数据流任务 1: 输入“Destination Input”(60) 上的 输入列“company”(122) 出错。返回的列状态是:“该值违反了该列的完整性约束。”。
(SQL Server 导入和导出向导)

* 错误 0xc0209029: 数据流任务 1: SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。“输入“Destination Input”(60)”失败,错误代码为 0xC020907D,而且针对“输入“Destination Input”(60)”的错误行处理设置指定一旦出错就失败。在指定组件的指定对象上出错。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
(SQL Server 导入和导出向导)

* 错误 0xc0047022: 数据流任务 1: SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。处理输入“Destination Input”(60)时,组件“目标 - metals”(47)的 ProcessInput 方法失败,错误代码为 0xC0209029。标识的这个组件从 ProcessInput 方法返回了一个错误。虽然该错误是此组件特有的,但却是致命的,将导致数据流任务停止运行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
(SQL Server 导入和导出向导)


- 执行之后 (成功)
消息
* 信息 0x402090df: 数据流任务 1: “组件“目标 - metals”(47)”中的数据插入操作的最终提交已开始。
(SQL Server 导入和导出向导)

* 信息 0x402090e0: 数据流任务 1: “组件“目标 - metals”(47)”中的数据插入操作的最终提交已结束。
(SQL Server 导入和导出向导)

* 信息 0x4004300b: 数据流任务 1: “组件“目标 - metals”(47)”已写入 52 行。
(SQL Server 导入和导出向导)

虽然出现了报错,但数据还是导进去了,在这里就是想问一下,出现此错误是表结构里的字段类型还是由其它原因造成的,还望各位朋友指点一二。
...全文
368 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2013-04-14
  • 打赏
  • 举报
回复
我建议你先整理好excel格式,我以前遇到过excel和表的数据行不一致,后来发现我excel计算行的时候包含了表头,所以多了一行,这些都是excel格式的问题而已,另外就是可以先导到一个新表,这样可以避免约束的问题,然后再进行更新匹配等。
zyz_0420 2013-04-14
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
根据错误提示,是表数据违反了约束,并且你的excel表格貌似也不是很好,如那个F11列,在excel中有多余的列,容易导致插入到表中时,存在整列null值,
整列是空值,确实是这样啊。 现在数据还是一笔不差导进去了,应该没什么影响吧?或者有什么好的建议呢?
發糞塗牆 2013-04-14
  • 打赏
  • 举报
回复
根据错误提示,是表数据违反了约束,并且你的excel表格貌似也不是很好,如那个F11列,在excel中有多余的列,容易导致插入到表中时,存在整列null值,

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧