SQL事务
SQL事务
一、事务概念
二、事务属性
事务4大属性:
1
2
3
4
三、创建事务
T-SQL中管理事务的语句:
1 开始事务: begin transaction
2 提交事务:commit transaction
3 回滚事务: rollback transaction
事务分类:
1 显式事务:用begin transaction明确指定事务的开始。
2 隐性事务:打开隐性事务:set implicit_transactions on,当以隐性事务模式操作时,SQL Servler将在提交或回滚事务后自动启动新事务。无法描述事务的开始,只需要提交或回滚事务。
3 自动提交事务:SQL Server的默认模式,它将每条单独的T-SQL语句视为一个事务。如果成功执行,则自动提交,否则回滚。
示例:张三转800元到李四帐户上。
go
--创建帐户表bank--
if exists(select* from sysobjects where name='bank')
create table bank
(
)
go
alter table bank add
insert into bank(customerName,currentMoney)
select '张三',1000 union
select '李四',1
select * from bank
go
use stuDB
go
--恢复原来的数据
--update bank set currentMoney=currentMoney-1000 where customerName='李'
set nocount on
print '查看转帐事务前的余额'
select * from bank
go
begin transaction
declare @errorSum int
update bank set currentMoney=currentMoney-800 where customerName='张三'
set @errorSum=@errorSum+@@error
update bank set currentMoney=currentMoney+800 where customerName='李四'
set @errorSum=@errorSum+@@error --累计是否有错误
print '查看转帐事务过程中的余额'
select * from bank
if @errorSum>0
else
go
print '查看转帐后的余额'
select * from bank
go