【发布时间】:2011-10-17 09:08:01
【问题描述】:
有没有一种高效的方法可以将非常大的 CSV 文件(大小为几 GB)加载到带有 .NET 的 SQL-Server 2008 数据库中?
【问题讨论】:
标签: c# .net sql-server csv
有没有一种高效的方法可以将非常大的 CSV 文件(大小为几 GB)加载到带有 .NET 的 SQL-Server 2008 数据库中?
【问题讨论】:
标签: c# .net sql-server csv
我会将this CSV reader 与SqlBulkCopy 结合起来;即
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 实现(至关重要的是,它流式传输数据,而不是在一次)。
【讨论】:
研究使用SQLBulkCopy 类。
【讨论】:
【讨论】: