-
Creo que es mejor que leas los datos del archivo de texto en DataSet
-
Pruebe SqlBulkCopy - Inserción masiva en SQL desde la aplicación C#
// connect to SQL using (SqlConnection connection = new SqlConnection(connString)) { // make sure to enable triggers // more on triggers in next post SqlBulkCopy bulkCopy = new SqlBulkCopy( connection, SqlBulkCopyOptions.TableLock | SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions.UseInternalTransaction, null ); // set the destination table name bulkCopy.DestinationTableName = this.tableName; connection.Open(); // write the data in the "dataTable" bulkCopy.WriteToServer(dataTable); connection.Close(); } // reset this.dataTable.Clear();
o
después de hacer el paso 1 en la parte superior
- Crear XML a partir de un conjunto de datos
- Pasar XML a la base de datos y realizar una inserción masiva
puede consultar este artículo para obtener más detalles:Inserción masiva de datos mediante C# DataTable y la función OpenXML del servidor SQL
Pero no se probó con 2 millones de registros, solo consumirá memoria en la máquina, ya que debe cargar 2 millones de registros e insertarlos.