什么是对象SqlConnection.BeginTransaction对

问题描述:

有用

当我通过ADO.NET连接到数据库时。至于SqlConnection对象,它有一个函数:带有3个重载的BeginTransaction。我不知道如何使用它,它的功能是什么?什么是对象SqlConnection.BeginTransaction对

事务用于保证一组操作(sql语句)全部执行(提交)或不执行(回滚)。

一个典型的用途是更新两个或多个表必须全部成功(或全部失败)。

交易确保一个工作块以ACID的方式运作 - 全部或全部。

可选名称在跟踪长时间运行的事务时对DBA很有用。在TSQL 中直接使用这些名称对于存储点等而言更为重要 - 但在OO世界中,您有一个对象。

isolation level决定如何它是酸。可串行化是最纯粹的,但是在附加锁(键范围锁等)方面具有更多开销成本。

典型用法是:

using (SqlTransaction tran = conn.BeginTransaction()) 
{ 
    try 
    { 
     /* work here, assigning "tran" onto 
     * any commands */ 
     tran.Commit(); 
    } 
    catch 
    { 
     tran.Rollback(); 
     throw; 
    } 
} 

在许多方面,它更容易使用TransactionScope - 这将创建一个环境交易,到哪些命令自动征用。它也可以跨越多个DBS等礼貌DTC:

using(TransactionScope tran = new TransactionScope()) 
{ 
    /* work here; no need to assign tran to anything */ 
    tran.Complete(); 
}