加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLserver中的事务

发布时间:2020-12-12 13:45:06 所属栏目:MsSql教程 来源:网络整理
导读:这是在 SQLserver 中写的代码 ? 执行后受影响的行数 ? 数据库的表名 ? 再给表更新时 出现了这种情况 ? 出现这种原因就是第一条数据执行后变成 0 了,和约束条件发生了冲突,造成失败! 这种情况就是 0001 没有减去钱,而 0002 钱增加了,这种情况绝对不能发

这是在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#中那将是很麻烦的事情,会有很多代码的,那么这样我们可以运用存储过程,这样可大大减少代码量!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读