// 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();
или
после выполнения первого шага
вы можете проверить эту статью для подробностей: Массовая вставка данных с использованием C # DataTable и SQL-сервера. Функция OpenXML
Но ее не проверено с 2 миллионами записей, он будет делать, но потребляет память на машине, поскольку вам нужно загрузить 2 миллиона записей и вставить их.