Excel导入SQL
2008-01-28 21:39 Animax! 阅读(332) 评论(0) 收藏 举报SQL语句:
 select * into 临时表 FROM  OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="Excel地址";
select * into 临时表 FROM  OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="Excel地址"; Extended properties=Excel 8.0')
Extended properties=Excel 8.0') 工作簿$
工作簿$存储过程:
 CREATE PROCEDURE IntroductionExcel
CREATE PROCEDURE IntroductionExcel @TableName varchar(2048),       --导入到那个表的表名
  @TableName varchar(2048),       --导入到那个表的表名 @ExcelAddress varchar(2048),    --导入的Excel文件的完全路径
  @ExcelAddress varchar(2048),    --导入的Excel文件的完全路径 @SheelName varchar(2048)        --导入的Excel文件的工作簿名
  @SheelName varchar(2048)        --导入的Excel文件的工作簿名 AS
AS -- 如果要导入到的那个表存在,则先删除那个表
  -- 如果要导入到的那个表存在,则先删除那个表 DECLARE @SQLDelTable varchar(2048)
  DECLARE @SQLDelTable varchar(2048) set @SQLDelTable =
  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()
  exec ( @SQLDelTable ) -- 用SQL执行制造存储过程中制造的SQL语句,只需要在语句加 exec() 
   -- 导入数据到指定的表中
  -- 导入数据到指定的表中 DECLARE @SQLAddress varchar(2048)
  DECLARE @SQLAddress varchar(2048) set @SQLAddress ='''Data Source="' + @ExcelAddress + '";
  set @SQLAddress ='''Data Source="' + @ExcelAddress + '"; Extended properties=Excel 8.0'''
  Extended properties=Excel 8.0'''
 DECLARE @SQlStr varchar(4000)
  DECLARE @SQlStr varchar(4000) set @SQlStr = 'select * into TmpBaseData FROM  OpenDataSource(''Microsoft.Jet.OLEDB.4.0'','
  set @SQlStr = 'select * into TmpBaseData FROM  OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',' + @SQLAddress + ')
    + @SQLAddress + ') Sheet1$'
Sheet1$'
 exec (@SQlStr)
  exec (@SQlStr) GO
GO使用浮标处理表中的数据:
 -- 首先,声明浮标所需要的变量
-- 首先,声明浮标所需要的变量 DECLARE @字段1
DECLARE @字段1 DECLARE @字段2
DECLARE @字段2
 -- 声明浮标
-- 声明浮标 DECLARE 浮标的名字 CURSOR FOR
DECLARE 浮标的名字 CURSOR FOR SELECT 字段1,字段2
SELECT 字段1,字段2 FROM 表名
FROM 表名
 -- 使用浮标
-- 使用浮标 OPEN 浮标的名字
OPEN 浮标的名字 FETCH NEXT FROM 浮标的名字
FETCH NEXT FROM 浮标的名字  INTO  @字段1,@字段2
INTO  @字段1,@字段2 WHILE @@FETCH_STATUS = 0
WHILE @@FETCH_STATUS = 0
 --================= 这里是开始
--================= 这里是开始 BEGIN
BEGIN
 -- TODO:数据处理
-- TODO:数据处理


 -- 浮标转到下一行
-- 浮标转到下一行 FETCH NEXT FROM 浮标的名字
FETCH NEXT FROM 浮标的名字 INTO  @字段1,@字段2
INTO  @字段1,@字段2
 --================= 这里是结束
--================= 这里是结束 END
END 
                    
                     
                    
                 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号