文章出處
文章列表
今天講下T-Sql語法中事務的用法,事務在項目中一般用的很少,主要用于轉賬,或是一些多表操作,第一步完成不了滾回,不執行接下的步驟。要么都不完成要么都完成,這是事務的特征。
語法很簡單,示例代碼如下:
1 create database Transaction_9_30
2 use Transaction_9_30
3 drop table Zanghui
4 create schema Jago
5 create table Jago.Zhanghui
6 (
7 ID int primary key,
8 Balance int not null
9 )
10 insert into Jago.Zhanghui(ID,Balance) values(1,1000);
11 insert into Jago.Zhanghui(ID,Balance) values(2,3000);
12 update Jago.Zhanghui set Balance=1000 where ID=1;
13 update Jago.Zhanghui set Balance=3000 where ID=2;
14 select *from Jago.Zhanghui
15
16 begin transaction t1; --例子:轉帳操作;一個表(id,balance)
17 declare @v bigint; --要求利用事務:
18 set @v = 0;
19 update Jago.Zhanghui set Balance=Balance-200 where ID=1;
20 if not exists(select *from Jago.Zhanghui where ID=1)
21 begin
22 --raiserror('asdfsdf',16,-1)
23 set @v = @v + 1;
24 end
25 --set @v = @v + @@error;
26 print @v;
27 update Jago.Zhanghui set Balance=Balance+200 where ID=2;
28 if not exists(select *from Jago.Zhanghui where ID=2)
29 begin
30 --update Jago.Zhanghui set Balance=Balance+200 where ID=1;
31 --raiserror('asdfsdf',16,-1)
32 set @v = 1;
33 end
34
35 if(@v = 0)
36 begin
37 print @v
38 commit tran t1;
39 end
40 else
41 begin
42 print @v
43 rollback tran t1;
44 end
45 --commit transaction t1
46
文章列表
全站熱搜