将文件夹下的所有EXCEL导入SQL数据库中,每一文件为一单独的表,表名为文件名...

None.gif    -- 将文件夹下的所有EXCEL导入SQL数据库中,每一文件为一单独的表,表名为文件名
None.gif
   -- By MadGoat 2006-11-23
None.gif
   create     table    #t (fname    varchar ( 260 ),depth    int ,isf    bit )   
None.gif  
insert     into    #t    exec    master..xp_dirtree    ' c:\test\ ' , 1 , 1    
None.gif  
declare    tb    cursor     for     select    fn = ' c:\test\ ' + fname    from    #t   
None.gif  
where    isf = 1     and    fname    like     ' %.xls '       -- 取.xls文件(EXCEL)   
None.gif
   declare     @fn     varchar ( 8000 )  
None.gif  
declare     @fname     varchar ( 8000
None.gif  
declare   @end   int   -- 截取的结束位置
None.gif
   declare   @fnamelen   int   -- 文件名称长度
None.gif
   open    tb   
None.gif  
fetch     next     from    tb    into     @fn    
None.gif  
while     @@fetch_status = 0    
None.gif  
begin
None.gif  
set   @end   =   len ( @fn ) - PATINDEX ( ' %\% ' reverse ( @fn ))
None.gif  
set   @fnamelen   =   len ( @fn ) - 5 - @end
None.gif  
set   @fname =   SUBSTRING ( @fn , @end + 2 , @fnamelen )
None.gif 
None.gif  
set     @fn = ' SELECT * into  ' + @fname + '  FROM OPENDATASOURCE( '' MICROSOFT.JET.OLEDB.4.0 '' ,
None.gif                
'' Excel 5.0;DATABASE= ' + @fn + '''  )dot.gif[Sheet1$] '      -- 关键是这句   
None.gif
   exec ( @fn )   
None.gif  
fetch     next     from    tb    into     @fn    
None.gif  
end    
None.gif  
close    tb   
None.gif  
deallocate    tb   
None.gif  
drop     table    #t 

转载于:https://www.cnblogs.com/madgoat/archive/2006/11/23/570039.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值