SQLserver中的事务

这是在SQLserver中写的代码

 

执行后受影响的行数

 

数据库的表名

 

再给表更新时

出现了这种情况

 

出现这种原因就是第一条数据执行后变成0了,和约束条件发生了冲突,造成失败!

这种情况就是0001没有减去钱,而0002钱增加了,这种情况绝对不能发生的!

声明:先把这两条语句看成一个整体,他们只有成功和失败这两种可能,没有一条成功一条失败这么一说;这个成功就是两条语句都能执行成功;一条成功,一条失败那也算是失败!

 

先执行完这个!

 

 

 

下面这个一直在执行!因为没有结果,所以一直在执行,

 

 

当输入rollback时,就出现了结果!

 

当第一个SSMS执行完rollback之后,第二个SSMS就立刻出现结果!

 

 

事务的使用:

先把数据恢复到原来的数据!

 

由上可见这样总是报错是不行的,我们在事务添加try …catch

 

这样就可以把错误包庇住,截止错误的出现!

 

代码实现:

begin transaction

begintry

      update bank set balance=balance-100 wherecid='0001';

      update bank set balance=balance+100 wherecid='0002';

    commit;

      end try

   begin catch

   rollback;

     end catch

 

 

如果当条件不满足时就会显示0行受影响

 

例如:

 

 

 

将事务运用到C#中那将是很麻烦的事情,会有很多代码的,那么这样我们可以运用存储过程,这样可大大减少代码量!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值