事务是大型数据库产品的一个关键问题,那么SQL Server事务究竟和Oracle中有何区别呢?下文对两个数据库中的事务设置的区别作了详细的叙述,供您参考。
在SQL Server中有三种事务类型,分别是:隐式事务、显式事务、自动提交事务,缺省为自动提交。
自动提交,是指对于用户发出的每条SQL语句,SQL Server都会自动开始一个SQL Server事务,并且在执行后自动进行提交操作来完成这个事务,也可以说在这种事务模式下,一个SQL语句就是一个事务。
显式事务,是指在自动提交模式下以Begin Transaction开始一个SQL Server事务,以Commit或Rollback结束一个SQL Server事务,以Commit结束事务是把SQL Server事务中的修改***化,即使这时发生断电这样的故障。例如下面
是SQL Server中的一个显式事务的例子。
- Begin Tran
- Update emp Set ename=’Smith’ Where empno=7369
- Insert Into dept Values(60,’HR’,’GZh’)
- Commit
隐式事务,是指在当前会话中用Set Implicit_Transactions On命令设置的事务类型,这时任何DML语句(Delete、Update、Insert)都会开始一个事务,而事务的结束也是用Commit或Rollback。
在Oracle中没有SQL Server的这些事务类型,缺省情况下任何一个DML语句都会开始一个事务,直到用户发出Commit或Rollback操作,这个事务才会结束,这与SQL Server的隐式事务模式相似。
【编辑推荐】