| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1697 人关注过本帖
标题:[求助] 批量导入多个mdb文件中表名不同结构相同的数据到sql中
取消只看楼主 加入收藏
huangfrsj
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2012-9-4
结帖率:100%
收藏
 问题点数:0 回复次数:2 
[求助] 批量导入多个mdb文件中表名不同结构相同的数据到sql中
大家好,我最近遇到一个十分棘手的问题,请各位不吝赐教!
我的一个文件夹内有很多的mdb文件,且很有规律,都是以R开头,后面跟年月日,如:R091028,表示为2009年10月28日自动备份的数据库。打开R091028文件后,发现有“DK091028”,“R0091028”,“R1091028”,“Ww091028”四张表,这四张表的后六位与文件名的后六位相同(当然,除此四张表与文件名有相同之外,其他表的表名均没有这种情况)。现在要将文件夹内所有mdb文件中的“DK091028”,“R0091028”,“R1091028”,“Ww091028”分别导入到sql中的“DK”、“R0”、“R1”、“Ww”中。曾经用如下一段sql语句导过相同表名的mdb文件:
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) --要导入的表名
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 'G:\审计项目\茶陵二中经责审计(2013)\财务数据\伙食账\R1','kabye'

但这次不同,以上四张表是随着日期的不同表名也不变得不同,实在没招。所以,请大家一定帮帮忙!
搜索更多相关主题的帖子: 数据库 年月日 文件夹 
2013-11-03 16:11
huangfrsj
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2012-9-4
收藏
得分:0 
各位大侠帮帮我啰!
2013-11-06 17:29
huangfrsj
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2012-9-4
收藏
得分:0 
难道没高手了吗?求各位大侠了!着急得狠啦!
2013-11-11 19:34
快速回复:[求助] 批量导入多个mdb文件中表名不同结构相同的数据到sql中
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024867 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved