事务处理是所有大型数据库产品的一个关键问题,各数据库厂商都在这个方面花费了很大精力,不同的事务处理方式会导致数据库性能和功能上的巨大差异。
事务处理也是数据库管理员与数据库应用程序开发人员必须深刻理解的一个问题,对这个问题的疏忽可能会导致应用程序逻辑错误以及效率低下。
Begin Tran
Update emp Set ename=’Smith’ Where empno=7369
Insert Into dept Values(60,’HR’,’GZh’)
Commit
Set Transaction Isolation Level Read Committed
1) Oracle中DDL语句对事务的影响
Commit;
DDL_Statement;
If (Error) then
Rollback;
Else
Commit;
End if;
我们通过分析下面例子来看Oracle中,DDL语句对事务的影响:
Insert into some_table values(‘Before’);
Creaate table T(x int);
Insert into some_table values(‘After’);
Rollback;
在SQL Server中,DDL语句对事务的影响与其他DML语句相同,也就是说,在DML语句发出之前或之后,都不会自动发出Commit命令。
在SQL Server 2000中,对于与上面Oracle同样的例子,最后发出Rollback后,数据库会回滚到插入Before之前的状态,即插入Before和After的行都会被回滚,数据表T也不会被创建。
如果最后发出Commit操作,则会把三个操作的结果全部提交。
5. 用户断开数据库连接对事务的影响
http://www.cnblogs.com/buggavin/articles/870118.html/
//////////////////////////////
sql server编程结构(五)--事务(trancation)
什么是事务:事务是用户对数据库进行的一系列的操作的集合,所以事务就是一系列的操作.
事务的特点:位于事务里面的操作要么都做,要么都不做.
事务的运行模式:sql server以三种模式来确定一个事务
A:自动提交事务:每条单独的一个sql语句就是一个事务[证明]
B:显示事务:必须以[begin tran]语句显式开始,以[commit tran]或[rollback tran]语句显示结束.
C:隐性事务:在前一个事务完成时新事务隐式启动,但每个事务仍以[COMMIT]或[ROLLBACK]语句显示完成.
[SET IMPLICIT_TRANSACTIONS ON] 必须打开
[当设置为ON时,SET IMPLICIT_TRANSACTIONS将连接设置为隐性事务模式.当设置为OFF时,则使连接返回到自动提交事务模式]
比如:SET IMPLICIT_TRANSACTIONSON
begin tran
update work set 基本工资=基本工资+100
commit tran
delete work
rollback tran [等一下再讲解]
显示事务:1:begin tran [开始一个事务]
2:commit tran[结束一个事务]
3:rollback tran[回滚一个事务]
4:save tran 名字 [设置保存点]
比如:begin tran
update work set 基本工资=基本工资+100
查看一下:select * from work
如果这个时候后悔了,可执行rollback tran来进行回滚事务(取消).如果确认了就执行commit tran确认前滚事务(执行事务)
试着执行以下语句:insert work(职工号) values(\'034\')
然后执行:commit tran或rollback tran看一下系统会提示什么
说明:A:只有运用了begin tran的事务,才可以用运用rollback tran或commit tran来回滚或前滚事务[隐性事务除外]
B:如果一个事务已经运用了commit tran则不能再运用rollback tran.
C:可以在一些操作中设置一些保存点:只取消保存点之后的操作.
比如:begin tran
update work set 基本工资=基本工资+100 where 性别=\'男\'
save tran ss[设置保存点]
delete work
如果后悔了,可以执行:1:[rollback tran ss]则从[save tran ss]开始,下面的语句将取消
2:如果执行[rollback tran]将取消整个事务
1:rollback tran 保存点 [从下到上,一直到保存点之间的语句被取消]
2:先[rollback tran 保存点名],再[rollback tran],结果:整个事务取消.相当于从一开始就[rollback tran]整个事务.
3:如果先执行[rollback tran保存点名],再执行[commit tran],结果:是从保存点到[begin tran]之间的语句被提交.
4:可以设置多个保存点.
5:前滚保存点就是前滚整个事务.
conn.BeginTrans
On Error GoTo err:
conn.CommitTrans
err:
////////////////////////////////////////////
////////////////////////////////////////////
////////////////////////////////////////////
四 ORACLE数据库的事务定义
条可执行的SQL语句时开始,到一条COMMIT、ROLLBACK语句或退出
数据库时结束。如果在一个事务中包含DDL语句,则在DDL语句的
前后都会隐含地执行COMMIT语句,从而开始或结束一个事务。
提交前取消它,则数据库被恢复到这些语句和过程执行之前的状
态。
事务。可以回退整个事务,也可以会退部分事务,但是不能回退
一个已经被提交的事务。回退部分事务的ROLLBACK命令为:
位置。存储点通过在事务中放入一个SAVEPOINT命令而被插入。该
命令的语法是:
退。
五 SYBASE数据库的事务定义
示SQL将任意数目的语句作为一个单元来处理。ROLLBACK TRANsaction
命令则允许用户恢复到事务的开始,或恢复到事务内部已经被用SAVE
TRANsaction命令定义的存储点上。
语句和存储过程,方法很简单:
前取消它,则数据库被恢复到这些语句和过程执行之前的状态。
前随时回退一个事务。可以回退整个事务,也可以回退部分事务,但
是不能回退一个已经被提交的事务。ROLLBACK TRANsaction命令为:
位置。存储点名通过在事务中放入一个SAVE TRANsaction命令而被插
入。该命令的句法是:
事务被回退到批处理中的第一个BEGIN TRANsaction语句处。
联系客服