2020-11-03

SQL中事务的使用方法

 

 

create database Test3
go
use Test3
go

create   table  bank
(
id  int  primary  key  identity(1,1),
name   varchar(20)  not   null,
money   int  default(0)  check(money>=0)
)

insert   into  bank  values('张一',90)
insert   into  bank  values('张二',80)
insert   into  bank  values('张三',91)

 

select  *  from  bank

 

go

create   proc  exchange  @from   int  ,@to  int ,@money  int

as
begin    tran
declare   @error  int
set  @error=0
update   bank  set   [email protected]  where  [email protected]
set  @[email protected]@[email protected]
update   bank  set   [email protected]   where   [email protected]
set  @[email protected]@[email protected]

if  @error<>0
      begin  
      rollback  tran 
      print '转账失败,交易取消'
      end
else  
   begin  
    commit   tran
      print '转账成功,交易取消'
      end

go

exec   exchange  2,1,10

--删除储存过程

drop procedure exchange