所需导入的数据格式文件,如EXCEL和ACCESS,以及TXT或RTF文件均无法导入SQL Server 2005的数据库,但均可以导入SQL Server2000数据库。在网上查询说需要打补丁,打到SP2也无济于事,把目标数据表的字段设置为最大也不行。最后在国外网站找到了解决办法:导入过程中的平面文件源的高级设置出了问题。
在SQL Server 2005数据库的导入导出向导过程中,选择了平面数据源,选定了平面文件后,要单击左侧的高级选项,将OutPutColumnWidth(输出列宽度)设置大,根据你列字段的长度,默认的是50,如果你的列中有超过50个字符长度,将会在导出导入过程中提示下面的错误。设置好后,就可以开始你的导入之旅,是不是很畅。
OutPutColumnWidth的解释:此列在数据流中的宽度,以单字符表示。组合字符可能需要两个或更多单字符空间。意思是,如果是20个汉字,那么长度至少要设置为20×2=40。
最后在微软的网站上找到关于该问题的详细解释。
附我在向SQL Server 数据库导入TXT数据过程遇到的错误信息,解决办法在上面:
操作已停止...
- 正在初始化数据流任务 (成功)
- 正在初始化连接 (成功)
- 正在设置 SQL 命令 (成功)
- 正在设置源连接 (成功)
- 正在设置目标连接 (成功)
- 正在验证 (成功)
- 准备执行 (成功)
- 执行之前 (成功)
消息
* 信息 0x402090dc: 数据流任务: 已开始处理文件“F:\Documents and Settings\listening\桌面\佛山.txt”。
(SQL Server 导入和导出向导)
- 正在执行 (错误)
消息
* 错误 0xc02020a1: 数据流任务: 数据转换失败。列“列 2”的数据转换返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。
(SQL Server 导入和导出向导)
* 错误 0xc020902a: 数据流任务: “输出列“列 2”(18)”由于发生截断而失败,而且针对“输出列“列 2”(18)”的截断行处理设置指定截断时出错。在指定组件的指定对象上出现截断错误。
(SQL Server 导入和导出向导)
* 错误 0xc0202092: 数据流任务: 处理文件“F:\Documents and Settings\listening\桌面\佛山.txt”的数据行 39 时出错。
(SQL Server 导入和导出向导)
* 错误 0xc0047038: 数据流任务: SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。组件“源 - 佛山_txt”(1) 的 PrimeOutput 方法返回了错误代码 0xC0202092。管道引擎调用 PrimeOutput() 时该组件返回了一个失败代码。虽然该失败代码只与该组件有关,但这个错误是致命的,管道已停止执行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
(SQL Server 导入和导出向导)
* 错误 0xc0047021: 数据流任务: SSIS 错误代码 DTS_E_THREADFAILED。 线程“SourceThread0”已退出,错误代码为 0xC0047038。可能在此之前已经发出错误消息,提供了有关线程退出原因的详细信息。
(SQL Server 导入和导出向导)
* 错误 0xc0047039: 数据流任务: SSIS 错误代码 DTS_E_THREADCANCELLED。线程“WorkThread0”接收到关闭信号,正在终止。原因是用户请求了关闭,或另一线程中的错误导致该管道关闭。可能在此之前已经发出错误消息,提供了有关取消线程的原因的详细信息。
(SQL Server 导入和导出向导)
* 错误 0xc0047021: 数据流任务: SSIS 错误代码 DTS_E_THREADFAILED。 线程“WorkThread0”已退出,错误代码为 0xC0047039。可能在此之前已经发出错误消息,提供了有关线程退出原因的详细信息。
(SQL Server 导入和导出向导)
- 正在复制到 [pubs].[dbo].[佛山] (已停止)
- 执行之后 (成功)
消息
* 信息 0x402090dd: 数据流任务: 文件“F:\Documents and Settings\listening\桌面\佛山.txt”已处理完毕。
(SQL Server 导入和导出向导)
* 信息 0x402090df: 数据流任务: 数据插入操作的最终提交已开始。
(SQL Server 导入和导出向导)
* 信息 0x402090e0: 数据流任务: 数据插入操作的最终提交已结束。
(SQL Server 导入和导出向导)
- 清除 (成功)
消息
* 信息 0x4004300b: 数据流任务: “组件“目标 - 佛山”(22)”已写入 0 行。
(SQL Server 导入和导出向导)