数据库事务的做用

所谓事务是用户定义的一个数据库操做序列,这些操做要么全作要么全不作,是一个不可分割的工做单位。例如,在关系数据库中,一个事务能够是一条SQL语句、一组SQL语句或整个程序。 

简单举个例子就是你要同时修改数据库中两个不一样表的时候,若是它们不是一个事务的话,当第一个表修改完,但是第二表改修出现了异常而没能修改的状况下,就只有第二个表回到未修改以前的状态,而第一个表已经被修改完毕。

而当你把它们设定为一个事务的时候,当第一个表修改完,但是第二表改修出现了异常而没能修改的状况下,第一个表和第二个表都要回到未修改的状态!这就是所谓的事务回滚
例如,在将资金从一个账户转移到另外一个账户的银行应用中,一个账户将必定的金额贷记到一个数据库表中,同时另外一个账户将相同的金额借记到另外一个数据库表中。因为计算机可能会因停电、网络中断等而出现故障,所以有可能更新了一个表中的行,但没有更新另外一个表中的行。若是数据库支持事务,则能够将数据库操做组成一个事务,以防止因这些事件而使数据库出现不一致。若是事务中的某个点发生故障,则全部更新均可以回滚到事务开始以前的状态。若是没有发生故障,则经过以完成状态提交事务来完成更新。
在 ADO.NET 中,可使用 Connection 和 Transaction 对象来控制事务。可使用 Connection.BeginTransaction 启动本地事务。一旦开始一个事务,就可使用 Command 对象的 Transaction 属性在该事务中登记命令。而后,能够根据事务组件的成功或失败状况,使用 Transaction 对象提交或回滚在数据源中所作的修改。
相关文章
相关标签/搜索