您的位置:首页 > 数据库

SQL存储过程,使用事务(try catch),游标

2016-04-13 11:39 260 查看
CREATE proc [dbo].[Sys_Rebate_Equity]

AS
declare @fMemberID varchar(50)--用户ID
declare @Rebate decimal(18,2)--总股权数

BEGIN
begin try
Begin Transaction    --开始事务
DECLARE  cursor1 CURSOR for        --定义游标cursor1
select fMemberID,sum(fNumber) as 'fNumber' from BP_Equity where fNumber>0 group by fMemberID    --使用游标的对象
open cursor1         --打开游标
fetch next from cursor1 into @fMemberID,@Rebate    --将游标向下移1行,获取的数据放入之前定义的变量@fMemberID,@Rebate中
while @@FETCH_STATUS=0    --判断是否成功获取数据
begin
select 1    --进行相应处理
fetch next from cursor1 into @id    --将游标向下移1行
end
close cursor1    --关闭游标
deallocate cursor1 --删除游标引用
select 888
Commit Transaction    --提交事务
End Try
Begin Catch
if @@trancount > 0 ROLLBACK TRANSACTION --回滚事务
Select 8888
End Catch

END


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: