什么是对象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();
}