Sí hay una manera:
DataTable dataTable = null; // your data needs to be here
try
{
ConnectionStringSettings mConString = ConfigurationManager.ConnectionStrings["SiteSqlServer"];
// Optional truncating old table
using (SqlConnection connection = new SqlConnection(mConString.ConnectionString))
{
connection.Open();
// Delete old entries
SqlCommand truncate = new SqlCommand("TRUNCATE TABLE MYTABLE", connection);
truncate.ExecuteNonQuery();
}
SqlBulkCopy bulkCopy = new SqlBulkCopy(mConString.ConnectionString, SqlBulkCopyOptions.TableLock)
{
DestinationTableName = "dbo.MYTABLE",
BatchSize = 100000,
BulkCopyTimeout = 360
};
bulkCopy.WriteToServer(dataTable);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
favor experiement con el BatchSize - 100000 fue bueno para mí - no debe ser mayor que - Velocidad migth disminuir lo contrario. BatchSize no limita sus datos; es solo el tamaño de cada "paquete" que se enviará al servidor sql.
SiteSQLServer debe estar dentro de su app.config o web.config. Necesita cambiar los parámetros aquí si no.
Por favor, cambie MYTABLE a su nombre de tabla.
¿Qué versión de SQL Server? 2008? –