将指定文件夹下结构相同的ACCESS文件内指定的表批量导入到SQL数据库中指定的表...

本文介绍了一种使用SQL Server存储过程Sp_InputAccesstoSQL的方法,该方法能够将指定文件夹下所有结构相同的Access文件中的特定表批量导入到SQL Server数据库的相应表中。此过程包括读取文件夹内的所有Access文件(.mdb),并在SQL Server中创建对应表结构及数据导入。

问题贴:http://topic.youkuaiyun.com/u/20100511/18/85e96b68-9c5b-4d08-8f5f-d4ae685580a3.html?seed=868821069&r=65351262#r_65351262

--------------------------------------------------------------------------

-- Author : htl258(Tony)

-- Date : 2010-05-11 18:29:45

-- Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)

-- Jul 9 2008 14:43:34

-- Copyright (c) 1988-2008 Microsoft Corporation

-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)

-- Subject:将指定文件夹下结构相同的ACCESS文件内指定的表批量导入到SQL数据库中指定的表

--------------------------------------------------------------------------

IF OBJECT_ID('Sp_InputAccesstoSQL') IS NOT NULL

DROP PROC Sp_InputAccesstoSQL

GO

CREATE PROC Sp_InputAccesstoSQL

@dir NVARCHAR(100),--ACCESS文件存放路径:如D:\Files

@tabname NVARCHAR(50) --ACCESS要导入的表名

AS

SET NOCOUNT ON

DECLARE @cmd NVARCHAR(1000)

CREATE TABLE #t([filename] NVARCHAR(1000))

IF RIGHT(@dir,1)<>'\'

SET @dir=@dir+'\'

SET @cmd = N'dir "' + @dir + '*.mdb" /B'

INSERT #t EXEC master..xp_cmdshell @cmd

DELETE #t WHERE [filename] IS NULL

--SQL中创建表:

DECLARE @S nvarchar(MAX)

IF OBJECT_ID(@tabname) IS NULL

BEGIN

SELECT TOP 1 @S='SELECT TOP 0 * INTO '+ @tabname+' FROM OPENROWSET(

''MICROSOFT.JET.OLEDB.4.0'', '''+@DIR+[filename]+''';''Admin'';'''','+@tabname+')'

FROM #t

EXEC(@S)

END

--开始导入目录下的文件

SET @S = ''

SELECT @S = @S + 'INSERT '+@tabname+' SELECT * FROM OPENROWSET(

''MICROSOFT.JET.OLEDB.4.0'', '''+@DIR+[filename]+''';''Admin'';'''','+@tabname+')'

FROM #t

EXEC(@S)

SET NOCOUNT OFF

GO

--调用示例:

EXEC Sp_InputAccesstoSQL 'D:\files','UserInfo'

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值