Mam ogromną listę ciągów INSERT INTO ...
. Obecnie biegnę im:Wysyłanie kilku poleceń SQL w pojedynczej transakcji
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
foreach (var commandString in sqlCommandList)
{
SqlCommand command = new SqlCommand(commandString, connection);
command.ExecuteNonQuery();
}
}
widzę, że każdy ExecuteNonQuery()
wykonuje również popełnić.
- Czy istnieje sposób na wstawienie wszystkich wierszy w pojedynczej transakcji (zatwierdzenie na końcu)?
- Powodem, dla którego chcę jednej transakcji, jest przyspieszenie procesu "wstawiania". Czy pojedyncza transakcja również przyspieszy?
SQlBulkCopy http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx –
można użyć zakresu transakcji (patrz MSDN). – TGlatzer
Możesz użyć równolegle dla każdego –