-
Penso che sia meglio leggere i dati del file di testo in DataSet
-
Prova SqlBulkCopy - Inserimento in blocco in SQL dall'app 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
dopo aver eseguito il passaggio 1 in alto
- Crea XML da DataSet
- Passa XML al database ed esegui l'inserimento collettivo
puoi controllare questo articolo per i dettagli:Inserimento in blocco di dati utilizzando C# DataTable e la funzione OpenXML del server SQL
Ma non è stato testato con 2 milioni di record, consumerà memoria sulla macchina poiché devi caricare 2 milioni di record e inserirlo.