【问题标题】:Import textfiles into linked SQL Server tables in Access将文本文件导入 Access 中的链接 SQL Server 表
【发布时间】:2025-12-24 21:50:06
【问题描述】:

我有一个带有链接 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 个小时! 当我对 Access 表(从 TXT 到 Access)执行相同操作时,它会快得多。

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

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

【问题讨论】:

  • 是否可以选择使用 SSIS?
  • 您是否尝试过将文本文件中的数据导入到本地 Access 表中,然后使用单个 INSERT INTO LinkedTable SELECT * FROM LocalTable 将数据复制到 SQL Server 表中?
  • 如果它回答了你的问题,你总是可以接受答案:)

标签: sql-server ms-access import text-files


【解决方案1】:

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

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

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

您可以在线轻松找到this one 等教程。

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

【讨论】:

  • 谢谢,我得花点时间研究一下 SSIS 选项。现在,我已将文本文件导入本地 Access 数据库并运行附加查询以将这些记录添加到 SQL Server 表中。 (就像 Gord 提到的)感谢您的支持! :)
  • 好的。我添加了 Gords 替代答案并支持他的评论。