事务管理对于一系列数据库 *** 作进行管理。
一个事务包含一个或多个SQL语句,是逻辑管理的工作单元(原子单元)。
一个事务开始于第一次执行的SQL语句,结束于Commit或Rollback或DDL语句。
注意:其中Commit,Rollback是显示的提交事务,而DDL语句是隐式的提交事务的。DDL语句的 *** 作是没有办法回滚的。
事务处理(TRANSACTION)是由一个或多个SQL语句序列结合在一起所形成的一个逻辑处理单元。事务处理中的每个语句都是完成整个任务的一部分工作,所有的语句组织在一起能够完成某一特定的任务。DBMS在对事务处理中的语句进行处理时,是按照下面的约定来进行的,这就是“事务处理中的所有语句被作为一个原子工作单位,所有的语句既可成功地被执行,也可以没有任何一个语句被执行”。DBMS负责完成这种约定,即使在事务处理中应用程序异常退出,或者是硬件出现故障等各种意外情况下,也是如此。在任何意外情况下,DBMS都负责确保在系统恢复正常后,数据库内容决不会出现“部分事务处理中的语句被执行完”的情况。
简单来说就是 单一的逻辑单元处理一系列事物。 *** 作一系列数据时,如有一条不合适或取消,所有数据均会到最初状态,即回滚。\x0d\说的比较抽象,我给你举个小例子你就明白了。\x0d\例如 ATM 机。\x0d\用户把钱从一个银行账号转账至另一个银行账号,这种 *** 作不能被部分完成。\x0d\如转的过程中 1卡钱被相应扣除,2卡在存中,这时机器出现故障,转账被取消。取消的同时,即要事物回滚,回到1卡原有的状态。\x0d\明白了吗
其实楼主的想法是好的,不过存储过程中不用加GOTO,加上了也不会起作用。
在一个事务里如果执行多个 *** 作,如果出现错误,事务会自动回滚,只不过有时候回滚的是整个事务,有时候回滚的是出现错误的 *** 作步骤,这是要看出错的原因了。
解决的方法是在存储过程开始加上
SET XACT_ABORT ON
这样出错后整个事务都会回滚,也就不会锁住表了。
以上就是关于数据库中的事务管理是什么全部的内容,包括:数据库中的事务管理是什么、在数据库中什么叫做事务处理、关于数据库事务的使用!!!数据库使用使用者请进等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)