日期:2014-05-18  浏览次数:20479 次

求一条SQL查询语句,最后10分请大家帮忙~谢谢
select   *   into   tb   from  
OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0 '
, 'C:\Documents   and   Settings\admin\桌面\zt.xls ',[aa$])

这是我在网上COPY的一条将excel导入SQL数据库的语句.但是运行的时候报错.错误信息如下:
服务器:   消息   7399,级别   16,状态   1,行   1
OLE   DB   提供程序   'MICROSOFT.JET.OLEDB.4.0 '   报错。  
[OLE/DB   provider   returned   message:   找不到可安装的   ISAM。]
OLE   DB   错误跟踪[OLE/DB   Provider   'MICROSOFT.JET.OLEDB.4.0 '   IDBInitialize::Initialize   returned   0x80004005:       ]。

需要怎么改?请说详细点

------解决方案--------------------
运行这个,再执行
set ansi_nulls on
set ansi_warnings on

------解决方案--------------------
--将某个目录上的Excel表,导入到数据库中

--将所有的Excel文件放到一个目录中,假设为c:\test\,然后用下面的方法来做

create table #t(fname varchar(260),depth int,isf bit)
insert into #t exec master..xp_dirtree 'c:\test ',1,1
declare tb cursor for select fn= 'c:\test '+fname from #t
where isf=1 and fname like '%.xls ' --取.xls文件(EXCEL)
declare @fn varchar(8000)
open tb
fetch next from tb into @fn
while @@fetch_status=0
begin
--下面是查询语句,需要根据你的情况改为插入语句
--插入已有的表用:insert into 表 selct * from ...
--创建表用:select * into 表 from ...
set @fn= 'select * from
OPENROWSET( ' 'MICROSOFT.JET.OLEDB.4.0 ' ', ' 'Excel 5.0;HDR=YES;DATABASE= '+@fn+ ' ' ',全部客户$) '
exec(@fn)
fetch next from tb into @fn
end
close tb
deallocate tb
drop table #t

试试这个,也是copy来的
------解决方案--------------------
你是想导入吧。。。
为什么不用向导呢??

------解决方案--------------------
select * into tb from
OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0 ', 'Excel 8.0;HDR=yes;database=C:\Documents and Settings\admin\桌面\zt.xls; ',[aa$])

------解决方案--------------------
select * into tb from
OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0 '
, 'Excel 5.0;HDR=YES;C:\Documents and Settings\admin\桌面\zt.xls ',[aa$])a