select * into 临时表 FROM  OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="Excel地址";
Extended properties=Excel 8.0
')工作簿$

存储过程:

CREATE PROCEDURE IntroductionExcel
  
@TableName varchar(2048),       --导入到那个表的表名
  @ExcelAddress varchar(2048),    --导入的Excel文件的完全路径
  @SheelName varchar(2048)        --导入的Excel文件的工作簿名
AS
  
-- 如果要导入到的那个表存在,则先删除那个表
  DECLARE @SQLDelTable varchar(2048)
  
set @SQLDelTable = 'if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[' + @TableName + ']'') and OBJECTPROPERTY(id, N''IsUserTable'') = 1)  drop table [dbo].[' + @TableName + '' 
  
  
exec ( @SQLDelTable ) -- 用SQL执行制造存储过程中制造的SQL语句,只需要在语句加 exec()
  
  
-- 导入数据到指定的表中
  DECLARE @SQLAddress varchar(2048)
  
set @SQLAddress ='''Data Source="' + @ExcelAddress + '";
  Extended properties=Excel 8.0
'''

  
DECLARE @SQlStr varchar(4000)
  
set @SQlStr = 'select * into TmpBaseData FROM  OpenDataSource(''Microsoft.Jet.OLEDB.4.0'','
    
+ @SQLAddress + ')Sheet1$'

  
exec (@SQlStr)
GO
posted @ 2008-02-19 13:56 遭雷劈 阅读(36) | 评论 (0)编辑