我想使用SqlBulkCopy将数据批量加载到SQL2008表中。我计划从多个客户端并行加载数据。
但是,我想模拟加载数据的延迟,以便可以检查数据库中的锁和并发问题。我通常使用Thread.Sleep()来模拟一个长时间运行的进程,但我不确定它是否适用于SQLBulkCopy。
using (SqlBulkCopy s = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.TableLock))
{
s.DestinationTableName = "HoldTable";
s.WriteToServer(dataTable);
System.Threading.Thread.Sleep(1000000);
s.Close();
}发布于 2011-11-03 02:16:12
默认情况下,SqlBulkCopy.WriteToServer在事务外部运行。这意味着它将在WriteToServer函数返回之前释放所有锁。在Sleep期间不会有任何数据库锁。
事务保持其锁,直到您提交它。因此,如果您将Sleep放在提交之前,您应该会有一个有用的模拟。
https://stackoverflow.com/questions/7985226
复制相似问题