将非常大的CSV文件加载到SQL-Server数据库中

时间:2011-10-17 09:08:02

标签: c# .net sql-server csv

是否有一种高性能的方法可以将非常大的CSV文件(大小为几千兆字节)加载到带有.NET的SQL-Server 2008数据库中?

3 个答案:

答案 0 :(得分:7)

我会将this CSV readerSqlBulkCopy合并;即。

using (var file = new StreamReader(path))
using (var csv = new CsvReader(file, true)) // true = has header row
using (var bcp = new SqlBulkCopy(connection)) {
    bcp.DestinationTableName = "TableName";
    bcp.WriteToServer(csv);
}

这使用批量复制API来执行插入,同时使用完全托管(和快速)IDataReader实现(关键是,数据,而不是加载它一下子。)

答案 1 :(得分:1)

使用SQLBulkCopy类。

答案 2 :(得分:0)