sqlserver 导出 excel、csv、 Access “不能打开数据库“”。应用程序可能无法识别该数据库,或文件可能损坏。

 

方式一:sqlserver 导出excel

报错,各种校验错误,占时无法解决。需要仔细百度。

方式二:每次查询6万条,然后复制粘贴到Excel。

复制过程中,卡住了。

方式三:sql查询-全选-另存为csv

可行,且高效!(10万以内,因为操过10万无法用Excel打开了)

 

方式四:导出Access

(10万条以上且普通人能打开的软件大概只有Access了)

问题:同样的导出方法,一次性导出所有数据(一千两百万),导出失败了(数据库大小超过2G);

按照编号拆分成三份(每个数据库容量不超过2G),却导出成功。  

目前结论:Access数据库的容量可能比SQLServer小的多!!!

建议分批导出多个Access库,每个Access数据库大小控制在2G以内,条数大约在五百万条以内(根据实际情况调整条数)。

 

sqlserver导出Access流程

 

 

 

你需要用Access新建一个mdb库。

 

 

 

 

 

 

 

 

 点击查询,调整数据类型和是否为空

 

 

 

 失败改为忽略

 

 点击下一步,等待导出成功。

 

 

------报错案例-----------------------------

 

若数据库大小操过2G,都报同样的错误:

 

 

操作已停止...

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

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

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

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

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

- 正在验证 (成功)

- 准备执行 (成功)

- 执行之前 (成功)

- 正在执行 (成功)

- 正在复制到 `查询` (错误)
消息
* 错误 0xc0202009: 数据流任务 1: SSIS 错误代码 DTS_E_OLEDBERROR。出现 OLE DB 错误。错误代码: 0x80004005。
已获得 OLE DB 记录。源:“Microsoft Access Database Engine” Hresult: 0x80004005 说明:“不能打开数据库“”。应用程序可能无法识别该数据库,或文件可能损坏。”。
(SQL Server 导入和导出向导)

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

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

* 错误 0xc02020c4: 数据流任务 1: 无法向数据流任务缓冲区添加行,错误代码为 0xC0047020。
(SQL Server 导入和导出向导)

* 错误 0xc0047038: 数据流任务 1: SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。源 - 查询 的 PrimeOutput 方法返回了错误代码 0xC02020C4。管道引擎调用 PrimeOutput() 时该组件返回了一个失败代码。虽然该失败代码只与该组件有关,但这个错误是致命的,管道已停止执行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
(SQL Server 导入和导出向导)

- 执行之后 (成功)
消息
* 信息 0x4004300b: 数据流任务 1: “目标 - 查询”已写入 8382851 行。
(SQL Server 导入和导出向导)

 

posted @ 2020-09-21 09:32  hao_1234_1234  阅读(4248)  评论(0编辑  收藏  举报