SQL Server批量更新数据
项目中有一个位置需要批量插入几万条数据,批量insert等待时间简直。。。用SqlBulkCopy后,之前需要1分钟左右的sql现在只要一眨眼(真的只要一眨眼)
稍后这个功能要加到另外一个项目中,另外一个项目是EF,回头更新一个EF的
1 public static int BulkInsert(DataTable dt) 2 { 3 using (SqlConnection connection = new SqlConnection(connectionString)) 4 { 5 try 6 { 7 connection.Open(); 8 using (SqlBulkCopy bulk = new SqlBulkCopy(connectionString)) 9 { 10 bulk.BatchSize = dt.Rows.Count; 11 bulk.DestinationTableName = dt.TableName; 12 for (int i = 0; i < dt.Columns.Count; i++) 13 bulk.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName); 14 bulk.WriteToServer(dt); 15 bulk.Close(); 16 } 17 return dt.Rows.Count; 18 } 19 catch (System.Data.SqlClient.SqlException e) 20 { 21 throw e; 22 } 23 finally 24 { 25 connection.Close(); 26 } 27 } 28 }
1212