一括挿入と一括コピーを同時に行うにはどうすればよいですか? 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();
}
}