实际上,我已经用于SqlBulkCopy
将行插入到我的DB
中,并且我已经将事务放置到SqlBulkCopy
.
现在,我的场景是,我有一个DataTable
包含500k
行,我试图通过SqlBulkCopy
.
我的代码:
using (con)
{
con.Open();
using (SqlTransaction transaction = con.BeginTransaction())
{
using (SqlBulkCopy SBC = new SqlBulkCopy(con, SqlBulkCopyOptions.Default, transaction))
{
SBC.DestinationTableName = "SURVEY_EMAIL_BLAST";
//SBC.BatchSize = 100;
SBC.BulkCopyTimeout = 0;
SqlBulkCopyColumnMapping mapEMAILID = new SqlBulkCopyColumnMapping("EMAILID", "EMAILID");
SBC.ColumnMappings.Add(mapEMAILID);
try
{
int k = dtEmails.Rows.Count;
SBC.WriteToServer(dtEmails);
transaction.Commit();
}
catch (System.Exception ex)
{
transaction.Rollback();
}
SBC.Close();
}
}
con.Close();
}
插入需要很长时间。
每当我停止执行时,数据仍在数据库中插入而没有回滚