dotnet- T-SQL、存储过程和系统变量(备忘)

本文深入探讨了T-SQL的循环语句和存储过程的实现方式,通过具体实例展示了如何使用T-SQL进行数据操作和事务处理。特别地,文章详细解释了一个转账流程的存储过程,包括余额检查、事务开始、错误处理和事务回滚等关键步骤。

T-SQL 是SQL server 对SQL的拓展

实例1:

 

declare @i int =1
declare @sum int = 0
while @i<=100
begin
set @sum = @sum + @i
set @i = @i +1
end
select @i as i,@sum as sum

 

实例2 :

结合存储过程写的转账:uprocedure

create procedure usp_TransferMoney

@from int ,

@to int,

@moneyCount float,

@ResultCode int out -- 1 success 2,yu e bu zu 3shibai

as

begin

declare @balanceMoney float

set @balanceMoney = (select balance from T_Bank where id =@from)

if (@balanceMoney -@moneyCount)<= 10

begin

 set @ResultCode = 2

end

else 

begin

 begin transaction

 declare @sumError int =0

 update T_Bank set balance = balance - @moneyCount where id = @from

 set @sumError = @sumError + @@ERROR

 update T_Bank set balance = balance + @moneyCount where id = @to

 set @sumError = @sumError + @@ERROR

 if @sumError != 0

 begin

 set @ResultCode = 3

 rollback transaction

 end

 else

 begin

 set @ResultCode = 1

 commit transaction

 end

end

end

 

调用存储过程
declare @result int 
exec usp_TransferMoney 0,4,100,@result output
select @result;

 

查看存储过程的SQL:

@@error 系统变量

exec sp_helptext usp_TransferMoney

 

常用的全局变量:

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值