今天讲下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
本文转自田园里的蟋蟀博客园博客,原文链接:http://www.cnblogs.com/xishuai/p/3191712.html,如需转载请自行联系原作者