SqlBulkCopy批量处理大数据

.NET 转摘 - 2015-11-06

针对MSSQL数据库,SqlBulkCopy处理大批量数据非常高效,可以将内存中的数据表直接一次性存储到数据库,而不需要一次一次的向数据库Insert数据。初次实验,百万级别的数据表,只需几秒时间,速度相当可观!笔记一下,以备后用。

/// <summary>
/// SqlBulkCopy批量处理大数据
/// </summary>
private void SqlBulkCopyByDatatable(string connectionString, string TableName, DataTable dt)
{
	using (SqlConnection conn = new SqlConnection(connectionString))
	{
		using (SqlBulkCopy sqlbulkcopy =new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction))
		{
			try
			{
				sqlbulkcopy.DestinationTableName = TableName;
				for (int i = 0; i < dt.Columns.Count; i++)
				{
					sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
				}
				sqlbulkcopy.WriteToServer(dt);
			}
			catch (System.Exception ex)
			{
				throw ex;
			}
		}
	}
}

添加新评论取消回复

昵称:
验证码: 验证码,看不清楚?请点击刷新验证码
评论: