SQL2005导出数据问题

时间:2022-05-04 19:00:13
从SQL2005向excel导出数据时出现以下问题:
------------------------------------------
- 执行之前 (错误)
消息
错误 0xc0202009: {7CAAFC8F-7D70-467A-B007-881F1C2AC462}: 出现 OLE DB 错误。错误代码: 0x80004005。
已获得 OLE DB 记录。源:“Microsoft JET Database Engine” Hresult: 0x80004005 说明:“未指定的错误”。
 (SQL Server 导入和导出向导)
 
错误 0xc020801c: 数据流任务: 对连接管理器“DestinationConnectionExcel”的 AcquireConnection 方法调用失败,错误代码为 0xC0202009。
 (SQL Server 导入和导出向导)
 
错误 0xc004701a: 数据流任务: 组件“目标 64 - Test”(7399) 在执行前阶段失败,返回的错误代码为 0xC020801C。
 (SQL Server 导入和导出向导)
-------------------------------------
不选Test表时下一个表出错点又转到下一个表.这是什么问题....

10 个解决方案

#1


尝试先一个简单的表导出到excel,如果成功,代表方法没错.那就是你这个表的某些数据有问题,只能自己一个一个判别了.

如果没成功,就是sql 2005或excel有问题.

#2


这是2000下SQL SERVER 和EXCEL的数据导入导出
1、在SQL SERVER里查询Excel数据:
-- ======================================================
SELECT * 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT * 
FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
-------------------------------------------------------------------------------------------------

2、将Excel的数据导入SQL server :
-- ======================================================
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
实例:
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
-------------------------------------------------------------------------------------------------

3、将SQL SERVER中查询到的数据导成一个Excel文件
-- ======================================================
T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
参数:S 是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式
实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'
EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'
在VB6中应用ADO导出EXCEL文件代码: 
Dim cn  As New ADODB.Connection
cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"
------------------------------------------------------------------------------------------------

4、在SQL SERVER里往Excel插入数据:
-- ======================================================
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)

T-SQL代码:
INSERT INTO  
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',  
'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$]  
(bestand, produkt) VALUES (20, 'Test')  
-------------------------------------------------------------------------------------------------

#3


单个表导出是没有问题的.而且单独导出test表也不会出问题.
请问一下,SQL2005一次导出上百个表是不是就会出问题啊?

#4


引用 3 楼 lanmengxjh 的回复:
单个表导出是没有问题的.而且单独导出test表也不会出问题. 
请问一下,SQL2005一次导出上百个表是不是就会出问题啊?

这个具体的情况就不知道了,我猜测你某个表可能有某个或某些字段不能导出到excel,如image,text等类型的.

#5


没有image类型的,但是有text类型,问题是单独可以导,整个库导的时候就会出问题.

#6


那你尝试找到出问题的那个表.看看是什么情况.

#7


没看出来表及表内数据有什么问题.
我要导出数据时(选取所有表)有个提示:选定了大量的表来进行复制,但向导可能无法在一个会话中复制所有这些表.选择"否"返回并取消选择某些表,或选择"是"尝试一次性复制当前选定的所有表.
是不是跟这个提示有关??

#8


那不是已经提示你了吗?少选几个试试

#9


少选几个当然是可以的.问题是选多少个表才是合适的? 同样的结构在2000库中一次导出全库表都没有问题.看来只有一次一次地试验了.

#10


好了,揭了.没其他人来分全给你了!

#1


尝试先一个简单的表导出到excel,如果成功,代表方法没错.那就是你这个表的某些数据有问题,只能自己一个一个判别了.

如果没成功,就是sql 2005或excel有问题.

#2


这是2000下SQL SERVER 和EXCEL的数据导入导出
1、在SQL SERVER里查询Excel数据:
-- ======================================================
SELECT * 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT * 
FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
-------------------------------------------------------------------------------------------------

2、将Excel的数据导入SQL server :
-- ======================================================
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
实例:
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
-------------------------------------------------------------------------------------------------

3、将SQL SERVER中查询到的数据导成一个Excel文件
-- ======================================================
T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
参数:S 是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式
实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'
EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'
在VB6中应用ADO导出EXCEL文件代码: 
Dim cn  As New ADODB.Connection
cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"
------------------------------------------------------------------------------------------------

4、在SQL SERVER里往Excel插入数据:
-- ======================================================
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)

T-SQL代码:
INSERT INTO  
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',  
'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$]  
(bestand, produkt) VALUES (20, 'Test')  
-------------------------------------------------------------------------------------------------

#3


单个表导出是没有问题的.而且单独导出test表也不会出问题.
请问一下,SQL2005一次导出上百个表是不是就会出问题啊?

#4


引用 3 楼 lanmengxjh 的回复:
单个表导出是没有问题的.而且单独导出test表也不会出问题. 
请问一下,SQL2005一次导出上百个表是不是就会出问题啊?

这个具体的情况就不知道了,我猜测你某个表可能有某个或某些字段不能导出到excel,如image,text等类型的.

#5


没有image类型的,但是有text类型,问题是单独可以导,整个库导的时候就会出问题.

#6


那你尝试找到出问题的那个表.看看是什么情况.

#7


没看出来表及表内数据有什么问题.
我要导出数据时(选取所有表)有个提示:选定了大量的表来进行复制,但向导可能无法在一个会话中复制所有这些表.选择"否"返回并取消选择某些表,或选择"是"尝试一次性复制当前选定的所有表.
是不是跟这个提示有关??

#8


那不是已经提示你了吗?少选几个试试

#9


少选几个当然是可以的.问题是选多少个表才是合适的? 同样的结构在2000库中一次导出全库表都没有问题.看来只有一次一次地试验了.

#10


好了,揭了.没其他人来分全给你了!