0

实际上,我已经用于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();
}

插入需要很长时间。
每当我停止执行时,数据仍在数据库中插入而没有回滚

4

0 回答 0