sql 事务(transaction)
2010-11-07 23:49
316 查看
--------------------------------
---------事务操作---------------
--------------------------------
use stuDB
--创建bank表
if exists (select * from sysobjects where name='bank')
drop table bank
go
create table bank
(
customerName char(10),
currentMoney money
)
go
--给bank表添加约束
alter table bank
add constraint ck_currentMoney check (currentMoney>=1)
go
--给bank添加数据
insert into bank (customerName,currentMoney) values ('张三',1)
insert into bank (customerName,currentMoney) values ('李四',1001)
go
--事务
print '查看转账前的余额'
select * from bank
go
--开始事务
begin transaction
declare @errorSum int--错误统计值
set @errorSum=0
--转账
update bank set currentMoney=currentMoney-1000 where customerName='李四'
set @errorSum=@errorSum+@@error
update bank set currentMoney=currentMoney+1000 where customerName='张三'
set @errorSum=@errorSum+@@error
print '查看转账过程中的余额'
select * from bank
if(@errorSum<>0)
begin
print '交易失败,回滚!'
rollback transaction
end
else
begin
print '交易成功,提交!'
commit transaction
end
print '查看转账后的余额'
select * from bank
go
---------事务操作---------------
--------------------------------
use stuDB
--创建bank表
if exists (select * from sysobjects where name='bank')
drop table bank
go
create table bank
(
customerName char(10),
currentMoney money
)
go
--给bank表添加约束
alter table bank
add constraint ck_currentMoney check (currentMoney>=1)
go
--给bank添加数据
insert into bank (customerName,currentMoney) values ('张三',1)
insert into bank (customerName,currentMoney) values ('李四',1001)
go
--事务
print '查看转账前的余额'
select * from bank
go
--开始事务
begin transaction
declare @errorSum int--错误统计值
set @errorSum=0
--转账
update bank set currentMoney=currentMoney-1000 where customerName='李四'
set @errorSum=@errorSum+@@error
update bank set currentMoney=currentMoney+1000 where customerName='张三'
set @errorSum=@errorSum+@@error
print '查看转账过程中的余额'
select * from bank
if(@errorSum<>0)
begin
print '交易失败,回滚!'
rollback transaction
end
else
begin
print '交易成功,提交!'
commit transaction
end
print '查看转账后的余额'
select * from bank
go
相关文章推荐
- Oracle PL/SQL之SET TRANSACTION READ ONLY(事务隔离性)
- SQL 事务(Transaction)
- sql事务(Transaction)用法介绍及回滚实例
- 黑马程序员之ADO.NET学习笔记: SqlTransaction(事务)
- Spring Transaction + MyBatis SqlSession事务管理机制[marked]
- sql事务(Transaction)用法介绍及回滚实例
- SqlTransaction——事务详解
- T-Sql(二)事务(Transaction)
- C#使用SqlConnection的事务SqlTransaction
- SqlDataAdapter.update结合事务(SqlTransaction)批量更新数据
- Oracle PL/SQL之SET TRANSACTION READ ONLY(事务隔离性)
- C# 事务之SqlTransaction
- Transact-SQL事务与SqlTransaction和TransactionScope的使用
- flashback_transaction_query 执行闪回事务查询时列operation全是unknown 而且undo_sql为空
- Spring Transaction + MyBatis SqlSession事务管理机制研究学习
- sql事务(Transaction)
- html5 本地数据库(Web SQL Database)之事务处理函数 transaction和executeSQL 详解
- SQL 2005 Tips --事务处理The current transaction cannot be committed and cannot support operations that write to the log file
- MS SQL Server Transaction Log truncation 事务日志截断
- sql事务(Transaction)用法介绍及回滚实例