Мне интересно, как сделать массовую вставку и объемную копию одновременно? У меня есть 2 таблицы, которые должны влиять на объемную копию, поскольку они оба зависят друг от друга.Вопросы о SQl BulkCopy
Так что я хочу, чтобы при вставке таблицы 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();
}
}
Извините, я должен был упомянуть, что я делаю это через код C#. Поэтому я не уверен, как я делаю то, что вы показали. Они являются ограничениями внешнего ключа, но когда я говорю, что они зависят друг от друга, я имею в виду, что таблица 2 уже заполнена, но когда вставка происходит, я хочу, чтобы записи в таблице 2 переходили в активированное состояние (это для лицензий, по сути, что происходит. Я получая список пользователей, и каждый из них получает ключ, который уже находится в базе данных, но установлен как неактивный, поэтому я хочу в это время изменить его на активный). – chobo2