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
相关文章推荐
- SQL Server数据转到Oracle 数据库(二)
- mysql相关 timestamp遇到的小问题
- MySQL ROLLUP和CUBE问题
- 深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接
- Redis 字符串处理命令
- iOS 数据库SQLite
- 关于Oracle 12C pdb用户无法登录的问题
- Redis keys 基本命令
- 0007《SQL必知必会》笔记03-汇总与分组数据
- 修改oracle字符集
- Sql Server 2008 R2数据库损坏修复成功案例
- 8个值得关注的SQL-on-Hadoop框架
- 用Redis存储Tomcat集群的Session实现session共享
- Oracle录屏命令spool的使用
- Oracle Hang Manager
- MySQL对换2张表的表名
- Oracle Redo Log 机制小结(转载)
- 查看MYSQL数据库中所有用户及拥有权限
- Redis 缓存 + Spring 的集成示例
- shiro redis集群介绍