Мне интересно, как можно сделать массовую вставку и массовую копию одновременно?У меня есть 2 таблицы, на которые должна влиять массовая копия, так как они зависят друг от друга.
Поэтому я хочу, чтобы, если при вставке таблицы 1 запись умирала, она откатывалась, а таблица 2 никогда не обновлялась.Кроме того, если в таблицу 1 вставлены хорошие данные, а в таблице 2 происходит сбой обновления, таблица 1 откатывается.
Можно ли это сделать с помощью массовой копии?
Редактировать
Я должен был упомянуть, что я делаю массовую вставку, хотя C #.
Это выглядит примерно так, но это пример, с которым я работал.Так что я не уверен, что мне придется изменить ее, чтобы она была хранимой процедурой (не уверен, как она будет выглядеть и как будет выглядеть код C #)
private static void BatchBulkCopy()
{
// Get the DataTable
DataTable dtInsertRows = GetDataTable();
using (SqlBulkCopy sbc = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.KeepIdentity))
{
sbc.DestinationTableName = "TBL_TEST_TEST";
// Number of records to be processed in one go
sbc.BatchSize = 500000;
// Map the Source Column from DataTabel to the Destination Columns in SQL Server 2005 Person Table
// sbc.ColumnMappings.Add("ID", "ID");
sbc.ColumnMappings.Add("NAME", "NAME");
// Number of records after which client has to be notified about its status
sbc.NotifyAfter = dtInsertRows.Rows.Count;
// Event that gets fired when NotifyAfter number of records are processed.
sbc.SqlRowsCopied += new SqlRowsCopiedEventHandler(sbc_SqlRowsCopied);
// Finally write to server
sbc.WriteToServer(dtInsertRows);
sbc.Close();
}
}