1

我有一个带有链接 SQL Server 表(后端)的 Access(2010)数据库(前端)。我需要将文本文件导入这些表中。这些文本文件非常大(有些有超过 200.000 条记录和大约 20 个字段)

问题是我不能直接在 SQL 表中导入文本文件。一些文件在开头包含空行,还有一些我不想在表中导入的其他行。所以这是我在 Access 数据库中所做的:

1)我创建了一个指向文本文件的链接。

2)我还有一个指向 SQL Server 表的链接

3a)我创建了一个附加查询,它将记录从链接的文本文件复制到链接的 SQLServer 表。

3b)我创建了一个 VBA 代码来打开两个表,并从 SQL Server 表中的文本文件中复制记录,逐条记录。(我以不同的方式尝试过:使用 DAO 和 ADODB)。

[步骤 3a 和 3b 是我尝试导入数据的两种不同方式。我使用其中之一,而不是两者。我更喜欢选项 3b,因为我可以在状态栏中运行一个计数器来查看随时需要导入多少条记录;我可以看到他有多远。]

问题是运行它需要很多时间......我的意思是很多时间:一个包含 70.000 条记录和 20 个字段的文件需要 3 个小时!当我对访问表(从 TXT 到 Access)执行相同操作时,它会快得多。

我有 15 个这样的表(记录更多),我需要每天进行这些导入。我每天晚上(20:00 到 6:00 之间)自动运行这个程序。

有没有更简单的方法来做到这一点?做这个的最好方式是什么?

4

1 回答 1

2

对我来说,这对SSIS来说是一个很好的案例。

您可以创建从平面文件(作为数据源)到 SQL DB(作为目标)的数据流。

您可以在两者之间添加一些验证或选择步骤。

你可以很容易地在网上找到这样的教程。

或者,您可以执行 Gord 提到的操作,将文本文件中的数据导入本地 Access 表中,然后使用单个INSERT INTO LinkedTable SELECT * FROM LocalTable将数据复制到 SQL Server 表中。

于 2013-06-26T08:56:23.403 回答