gpt4 book ai didi

sql-server - 如何使用 SSIS 将多个 Access 数据库导入 SQL Server

转载 作者:行者123 更新时间:2023-12-02 02:07:02 24 4
gpt4 key购买 nike

我有一个包含 300 多个 Access 数据库的文件夹(由我无法控制的程序编写)。它们都具有相同的结构,只是一张表。我正在将数据导入到 SQL Server (2005) 中的表中。使用导入向导效果很好,但它一次只能处理一个 Access 数据库。

我已经搜索并搜索了一种方法来执行此操作,并且我认为我正在使用 ForEach 循环容器内的数据流任务。但是,我只看到了一种使用 Excel 文件或平面文件作为源来执行此操作的方法。

非常感谢任何帮助。

最佳答案

对于一次性任务,您可以使用一次性 VBA 代码。

创建一个新数据库,并在该数据库中创建一个指向您的 SQL Server 表的 ODBC 链接。

然后创建一个与此类似的新 Access 查询:

INSERT INTO remote_table (<field list>)
SELECT <field list>
FROM YourTable In 'C:\SourceFolder\db1.mdb';

如果字段在源和目标中的名称相同,则可以省略 <field list> .

INSERT INTO remote_table
SELECT *
FROM YourTable In 'C:\SourceFolder\db1.mdb';

在最好的情况下,Access 字段值将与 SQL Server 字段类型兼容。否则,您将不得不使用 Access 函数将字段值转换为 SQL Server 兼容类型。

一旦您完成排序,从您的 Access 数据库文件上传数据的 VBA 程序将变得快速而简单:

Sub Test()
Const cstrExtension As String = "mdb"
Const cstrFolder As String = "C:\SourceFolder\"
Dim db As DAO.database
Dim strDbFile As String
Dim strInsert As String

strInsert = "INSERT INTO remote_table (<field list>)" & vbCrLf & _
"SELECT <field list>" & vbCrLf & _
"FROM YourTable In 'DB_FILE';"
Set db = CurrentDb
strDbFile = Dir(cstrFolder & "*." & cstrExtension)
Do While Len(strDbFile) > 0
db.Execute Replace(strInsert, DB_FILE, _
cstrFolder & strDbFile), dbFailOnError
strDbFile = Dir()
Loop
Set db = Nothing
End Sub

关于sql-server - 如何使用 SSIS 将多个 Access 数据库导入 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14444098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com