Excel导入SQL
2008-01-28 21:39 Animax! 阅读(325) 评论(0) 编辑 收藏 举报SQL语句:
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
@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
@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
使用浮标处理表中的数据:
-- 首先,声明浮标所需要的变量
DECLARE @字段1
DECLARE @字段2
-- 声明浮标
DECLARE 浮标的名字 CURSOR FOR
SELECT 字段1,字段2
FROM 表名
-- 使用浮标
OPEN 浮标的名字
FETCH NEXT FROM 浮标的名字
INTO @字段1,@字段2
WHILE @@FETCH_STATUS = 0
--================= 这里是开始
BEGIN
-- TODO:数据处理
-- 浮标转到下一行
FETCH NEXT FROM 浮标的名字
INTO @字段1,@字段2
--================= 这里是结束
END
DECLARE @字段1
DECLARE @字段2
-- 声明浮标
DECLARE 浮标的名字 CURSOR FOR
SELECT 字段1,字段2
FROM 表名
-- 使用浮标
OPEN 浮标的名字
FETCH NEXT FROM 浮标的名字
INTO @字段1,@字段2
WHILE @@FETCH_STATUS = 0
--================= 这里是开始
BEGIN
-- TODO:数据处理
-- 浮标转到下一行
FETCH NEXT FROM 浮标的名字
INTO @字段1,@字段2
--================= 这里是结束
END