数据库事务

什么是事务(Transaction)

  指访问并可能更新数据库中各种数据项的一个程序执行单元(unit),也就是由多个sql语句组成,必须作为一个整体执行。

  这些sql语句作为一个整体,一起向系统提交,要么都执行,要么都不执行。

语法步骤:

开始事务:BEGIN TRANSACTION

事务提交:COMMIT TRANSACTION

事务回滚:ROLLBACK TRANSACTION


判断某条语句执行是否出错:

全局变量@@ERROR

@@ERROR只能判断当前一条T-SQL语句执行是否有错,为了判断 事务中所有T-SQL语句 是否有错,我们需要对错误 进行累计;

例:SET @errorSum=@errorSum+@@ERROR



BEGIN TRANSACTION 
/*--定义变量,用于累计事务执行过程中的错误--*/
DECLARE @errorSum INT 
SET @errorSum=0  --初始化为0,即无错误
/*--转账:张三的账户少1000元,李四的账户多1000元*/
UPDATE bank SET currentMoney=currentMoney-1000
   WHERE customerName='张三'
SET @errorSum=@errorSum+@@error
UPDATE bank SET currentMoney=currentMoney+1000
   WHERE customerName='李四'
SET @errorSum=@errorSum+@@error  --累计是否有错误
If @errorSum>0
Begin
	rollback transaction
	 select ‘失败’
End
Else
Begin
	commit transaction
	select ‘成功’
End

欢迎加入.net技术交流群.Net技术交流


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值