将大型文本文件导入SQL Server数据库

时间:2013-12-09 17:00:46

标签: c# sql-server-2008-r2

我是C#的新手(虽然在VB中很有经验),我想将一些非常大的管道(|)分隔文件导入我的SQL Server数据库。

到目前为止,我已经创建了一个C#项目(使用SharpDevelop)并添加了代码来扫描目录中具有特定名称的文本文件,并根据文件名识别SQL Server中的目标表。我还创建了一个SQL连接,它运行没有错误,但就我而言。

所以我认为我建议如何最好地采用这些类型的文件(其中一些是几千KB大小到几乎2GB大小)并将它们导入SQL Server。文本文件还有一个列名称的列标题和一些我希望格式化为日期的列。我还想在导入之前验证表是否存在,所以我知道是否创建它。

我应该使用某种文件阅读器并逐行读取文件还是读取整个文件?只是不确定解决这个问题的最佳方法。

2 个答案:

答案 0 :(得分:2)

查看this post关于使用缓冲流来读取大文本文件。之后拆分管道并调用SQL函数应该相对容易。

答案 1 :(得分:2)

BCP是导入原始文本数据的最快方法。 SSIS是另一种选择,但是逐行读取数据并通过翻译器运行。