Access 2012导入500MB文本文件会导致磁盘空间不足

时间:2015-03-13 15:05:29

标签: vba tsql import

我有500MB的txt文件。它不是CSV文件(除了空格之外没有任何分隔符),所以我无法使用tSQL导入它。目前我正在尝试Access的导入规范的帮助。我想出了如何在代码中调用它并抛光代码,以便我可以导入一个小文件(测试文件大200kb)。但现在我有我必须导入的确切文件和500MB的大小。当我运行我的代码时,它达到了大约50%,然后抛出“你的计算机磁盘空间不足。你将无法撤消这个粘贴附加。你还想继续吗?”错误。

我正在插入一个链接的SQL表。

我该怎么做才能摆脱这个错误以及究竟是什么导致它(我有足够的磁盘空间和内存容量)?

3 个答案:

答案 0 :(得分:0)

您可以在T-SQL中批量插入空格分隔文件,如下所示:

BULK INSERT yourTable
   FROM 'C:/<filepath>/yourTextFile.txt'
   WITH 
      (
         --Space delimited
         FIELDTERMINATOR =' ',

         --New rows starts at new line
         ROWTERMINATOR ='\n'

         --Use this if you have a header row with your column names. 
         --,FIRSTROW = 2
      )

答案 1 :(得分:0)

你确定你有磁盘空间吗?它不只是弥补这些信息。

磁盘空间是否实际分配给数据数据和日志文件?

答案 2 :(得分:0)

我设法用tsql解决了这个问题。问题是文件中的列没有用任何分隔符分隔。因此,我在访问中创建了一个导入规范(您可以选择每个列所在的位置)。然后我只是使用规范作为编写tsql过程的参考,它使用批量插入然后得到每个&#34;列&#34;使用SUBSTRING从txt文件中取出(访问规范为您提供了在子字符串中使用的范围)。

现在没有任何问题。导入500MB文件大约需要20分钟。但我晚上有一份工作,所以这不是问题。

谢谢大家的帮助。这个问题现已结束。有关我的解决方案的任何问题,请询问。