Sql Server使用事务实现--转账问题
2012-11-08 19:33
204 查看
create table Bank
(
Cid char(4) primary key,
balance money
)
alter table Bank
add constraint CH_balance check (balance>=10)
insert into Bank values('0001',1000)
insert into Bank values('0002',10)
update Bank set balance=balance-1000 where Cid='0001'
update Bank set balance=balance+1000 where Cid='0002'
begin tran
begin try
declare @errorsum int=0
update Bank set balance=balance-900 where Cid='0001'
set @errorSum=@errorSum+@@error
update Bank set balance=balance+900 where Cid='0002'
set @errorSum=@errorSum+@@error
commit
print '提交!!'
end try
begin catch
rollback
print '回滚!'
end catch
打开"隐式事务":set
implicit_Transactions on
关闭“隐式事务”:set
implicit_Transactions off
(
Cid char(4) primary key,
balance money
)
alter table Bank
add constraint CH_balance check (balance>=10)
insert into Bank values('0001',1000)
insert into Bank values('0002',10)
update Bank set balance=balance-1000 where Cid='0001'
update Bank set balance=balance+1000 where Cid='0002'
begin tran
begin try
declare @errorsum int=0
update Bank set balance=balance-900 where Cid='0001'
set @errorSum=@errorSum+@@error
update Bank set balance=balance+900 where Cid='0002'
set @errorSum=@errorSum+@@error
commit
print '提交!!'
end try
begin catch
rollback
print '回滚!'
end catch
打开"隐式事务":set
implicit_Transactions on
关闭“隐式事务”:set
implicit_Transactions off
相关文章推荐
- 使用事务实现--转账问题:从0001账户转1000块到0002账户。打开"隐式事务":设置为开,删除表中数据,回滚!(默认情况为关,如果打开了则不自动提交,学要手动提交)
- SQL Server 2005中使用事务发布实现数据库复制
- 使用ThreadLocal控制事务实现用户转账
- 在存储过程中使用事务处理 sql server 删除多表操作一致性的问题
- 事务的使用示例及WinForm实现中的若干问题
- 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为(转)
- 事务的使用示例及WinForm实现中的若干问题
- 使用注解方式实现Dubbo搭建,解决消费者调用接口出现空指针异常以及事务等问题
- 使用事务实现银行转账操作
- 【Java EE 学习 19】【使用过滤器实现全站压缩】【使用ThreadLocal模式解决跨DAO事务回滚问题】
- 使用存储过程、事务、webpage实现转账。
- [SQL Server] 使用事务发布与订阅实现数据同步
- SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete) 一条语句实现两表同步(添加、删除、修改)
- 使用UIView实现suckEffect定位问题
- 使用SSM的时候添加自定义的监听器(实现已知的那几个接口)出现报错的问题 推荐
- 使用SQL Server 2008的事务日志传送功能备份数据库(logshiping)
- 使用事务与锁,实现一个用户取过的数据不被其他用户取到
- 使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
- C++编程笔记:使用WinHTTP实现HTTP访问(解决接收UTF8数据乱码问题)
- SQL Server 使用CTE实现递归查询