【发布时间】:2018-05-22 23:28:46
【问题描述】:
我有一个程序正在执行批量复制到几个 Sybase 数据库表中。但是,回滚事务不起作用。单步执行逻辑时,问题似乎出在事务对象上。我现在很茫然。任何建议都会很棒。
public static void SqlBulkCopy()
{
try
{
conn.Open();
using (transaction = conn.BeginTransaction())
{
using (bulkCopy = new AseBulkCopy(conn, AseBulkCopyOptions.Default, transaction))
{
BulkCopying("DB_TABLE_1", dataTable1);
BulkCopying("DB_TABLE_2", dataTable2);
BulkCopying("DB_TABLE_3", dataTable3);
transaction.Commit();
}
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
}
}
private static void BulkCopying(string dbTableName, DataTable dtSourceName)
{
try
{
bulkCopy.BatchSize = 1000;
bulkCopy.BulkCopyTimeout = 720;
bulkCopy.NotifyAfter = 1000;
bulkCopy.DestinationTableName = dbTableName;
bulkCopy.WriteToServer(dtSourceName);
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
}
这是我得到的错误:
Sybase.Data.AseClient.AseException:“tempdb”数据库中的多语句事务中不允许使用“CREATE TABLE”命令。
【问题讨论】:
标签: c# sybase sqlbulkcopy