SQL事务-解析
事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时事务是做为最小的控制单元来使用的。他包含的所有数据库操作命令作为一个整体一起向系统提交或撤消,这一组数据库操作命令要么都执行,要么都不执行。
事物的四个属性(ACID):
①原子性(Atomicity):事务中的所有元素作为一个整体提交或回滚,事务的元素是不可分的,事务是一个完整操作。④持久性(Durability):事务完成之后,它对于系统的影响是永久的,该修改即使出现系统故障也将一直保留,真实的修改了数据库
事务的主要的控制语句:以上是事务的一些基本概念,涉及到多表操作的时候保证一个过程都顺利的执行,经常用到事务。在SQL中事务就是一个存储过程,注意一些语法即可。
实例运用:事务的调用方法和存储过程一样。
SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:<Jesse>-- Create date: <2012年8月11日, PM 09:11:50>-- Description:<退卡操作事务:用户信息基本表中的记录删除之后在退卡信息表添加一条记录>-- =============================================CREATE PROCEDURE <ReturnCard> @cardno varchar(18) --传入参数卡号@c_operator varchar(10) --传入操作员名称ASBEGINdeclare @CancelCash decimal(18,2),@Err1 int,@Err2 int --定义变量SELECT @cancelcash=select balance from D_sqlStudentInfo where carno=@cardno --给变量赋值BEGIN TRANSACTION--开始事务Delete from D_sqlStudentInfo where carno=@cardno---删除用户记录语句Set @Err1=@@Error--如果出错就会给变量赋值,变量不为0insert D_CancelCard (cardno,cancelCash,c_datetime,c_operator) values (@cardno,@cancelCash,getdate(),@c_operator) ---插入数据语句Set @Err2=@@Error --如果出错就会给变量赋值,变量不为0IF @Err1=0 AND @Err2=0--如果都为0,表示没有出错COMMIT TRANSACTION--提交,完成事务ELSEROLLBACK TRANSACTION--出错,事务回滚,恢复到初始状态,没有任何改动ENDGO