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