SQLServer中批量插入数据方式

技术方案:
ADO.NET2.0的一个新的特性:SqlBulkCopy。有关这个的性能,很早之前我是亲自做过性能测试的,效率非常高。

代码
     /// <summary>
        
/// 使用SqlBulkCopy方式插入数据
        
/// </summary>
        
/// <param name="dataTable"></param>
        
/// <returns></returns>
        private static long SqlBulkCopyInsert()
        {
            Stopwatch stopwatch 
= new Stopwatch();
            stopwatch.Start();

            DataTable dataTable 
= GetTableSchema();
            
string passportKey;
            
for (int i = 0; i < count; i++)
            {
                passportKey 
= Guid.NewGuid().ToString();
                DataRow dataRow 
= dataTable.NewRow();
                dataRow[
0= passportKey;
                dataTable.Rows.Add(dataRow);
            }

            SqlBulkCopy sqlBulkCopy 
= new SqlBulkCopy(connectionString);
            sqlBulkCopy.DestinationTableName 
= "Passport";
            sqlBulkCopy.BatchSize 
= dataTable.Rows.Count;
            SqlConnection sqlConnection 
= new SqlConnection(connectionString);
            sqlConnection.Open();
            
if (dataTable!=null && dataTable.Rows.Count!=0)
            {
                sqlBulkCopy.WriteToServer(dataTable);
            }
            sqlBulkCopy.Close();
            sqlConnection.Close();

            stopwatch.Stop();
            
return stopwatch.ElapsedMilliseconds;
        }
 
     private static DataTable GetTableSchema()
        {
            DataTable dataTable 
= new DataTable();
            dataTable.Columns.AddRange(
new DataColumn[] { new DataColumn("PassportKey") });
            
            
return dataTable;
        }
原文地址:https://www.cnblogs.com/bobofsj11/p/1676320.html