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#中那将是很麻烦的事情,会有很多代码的,那么这样我们可以运用存储过程,这样可大大减少代码量! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |