2015-03-13 78 views
0

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

我插入到链接的SQL表中。

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

回答

0

那么我设法用tsql解决它。问题是文件中的列没有用任何分隔符分隔。因此,我在访问中创建了一个导入规范(您可以在每个列中选择哪一个)。然后,我只是使用规范作为编写tsql过程的参考,该过程使用批量插入,然后使用SUBSTRING(访问规范为您提供在子字符串中使用的范围)从txt文件中获取每个“列”。

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

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

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 
    ) 
0

你确定你的磁盘空间空间?它不只是编写这些消息。

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

+0

有一个300 GB的免费磁盘空间 – Miha 2015-03-16 08:22:49

相关问题