事务系列

先说oracle

早上来公司,开始一天的job。

先做一个保存点

savepoint a1;

--上午做了很多的事情,但都没有提交事务

savepoint a2;

--下午又做了很多的事情,也没有提交事务

--到了晚上,发现下午有一个地方做错了,OK,回滚到point a2;

--也就是说下午做事情都白做了(白做也比被开了强,再加班补一下呗)

rollback to a2;

--当然了,如果到晚上发现早上的东西做错了,那就回滚到a1,不过今天一天就算白做了

如果做了truncate操作,那就意味着提交了事务,相当于执行了

commit;

之前做的所有的保存点都没有了,也无法回滚事务了。

再说说sql server。我用的是sql server 2005,与oracle的关键字不一样,它用的是tran和save tran,保存一个我做的instance:

select * from dbo.tempTable

begin tran A--早上过来上班,启动一个事务

save tran B--做一个保存点

--执行一些操作

update dbo.tempTable set illegalAccess=10;

select * from dbo.tempTable;

save tran C--再做一个保存点,

--再执行一些操作

update dbo. tempTable set pattern='ABCD';

select * from dbo.tempTable;

rollback tran B--发现改错了一些东西,回滚事务

select * from dbo.tempTable;

commit tran A;    --一天的事务做完了,检查一下,如果没有错误就提交。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值