登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

中吴南顾惟一笑

成功法则就是那19个字

 
 
 

日志

 
 

Transaction (转)  

2009-10-13 15:42:42|  分类: dbms |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
什么是事务

  数据库事务(Database Transaction)是一组数据库操作的处理单元。事务符合ACID的特性:

  Atomic:原子性,要么全部要么一无所有。All or None.

  Consistent:一致性,所有依赖关系以及约束一致。

  Isolated:分离性,不同事务不互相影响。

  Durable:持久性,提交事务的数据需要持久化。


为什么要使用事务

  实现事务主要有两大功能:

  保证数据库的consistent(一致性状态),保持所有依赖关系以及约束一致

  并发时分离不同事务操作

SQL Server 2008 的事务类型

  1.自动提交事务 Autocommit Transactions

  这是SQL Server默认的事务类型,每一条单独的SQL语句(SQL statement)都是单独的一个事务,语句执行完毕后自动提交。调用方不需要手工控制事务流程。

  2.显示事务 Explicit Transactions

  调用方需要调用API或者使用T-SQL的BEGIN TRANSACTION 语句来打开事务。需要调用COMMIT 或者 ROLLBACK TRANSACTION 来提交或者回滚。

  3.隐式事务 Implicit Transactions

  使用SET IMPLICIT_TRANSACTIONS ON把事务模式变成隐式模式。调用方不需要执行BEGIN TRANSACTION 语句来打开事务。数据库引擎执行到SQL语句的时候自动打开事务。调用方需要调用COMMIT 或者 ROLLBACK TRANSACTION 来提交或者回滚。当数据库引擎执行下一个SQL语句时又自动打开一个新事务。

Oracle的事务类型

  Oracle的事务处理类型有点像SQL Server的隐式事务。当执行到第一个可执行的SQL语句时自动打开事务,然后需要调用方执行commit或者rollback来提交或者回滚事务,如果有DDL语句,Oracle也会自动提交事务的。


  评论这张
 
阅读(220)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018