求一条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