首页 > php教程 > PHP开发 > SQL 游标使用实例

SQL 游标使用实例

高洛峰
发布: 2016-12-14 11:23:37
原创
1219 人浏览过

IF EXISTS(SELECT *FROM sysobjects WHERE name='sp_ContestSubmit')  
    DROP PROC sp_ContestSubmit
GO
-- =============================================
-- Author:        zqt
-- Create date: 2011-11-25
-- Desc:        系统管理员批量给未交卷的考生交卷-竞赛
-- =============================================
Create proc sp_ContestSubmit
@GroupID int            --考核ID
as
--申明一个游标
DECLARE MyCursor CURSOR    
    FOR select PK_UserExamID,FK_UserID,FK_ExamOrContestID from Score_UserExam where IsComplete=0 AND  FK_ExamOrContestID in(select PK_ContestInfoID from Contest_Info where FK_ContestGroupID=@GroupID)

--打开一个游标    
OPEN MyCursor

--循环一个游标
DECLARE @UserExamID int ,@UserID int ,@ExamManageID int
    FETCH NEXT FROM  MyCursor INTO @UserExamID, @UserID,@ExamManageID
WHILE @@FETCH_STATUS =0
    BEGIN
        --获取考试考试分数
        DECLARE @UserExamScore int
        select @UserExamScore=sum(Score) from Score_UserAnswer where FK_UserID=@UserID AND FK_UserExamID=@UserExamID
        
        --修改考生交卷信息
        UPDATE [Score_UserExam] SET [Score] =@UserExamScore,[IsComplete] = 1,[EndTime] = getdate(),[DurationSecs] = datediff(ss,BeginTime,getdate()) where PK_UserExamID=@UserExamID 
        FETCH NEXT FROM  MyCursor INTO @UserExamID, @UserID,@ExamManageID
    END    

--关闭游标
CLOSE MyCursor
--释放资源
DEALLOCATE MyCursor

/* 测试
    exec sp_ContestSubmit 1
*/ 
GO
登录后复制


相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
python - pymongo中游标的使用
来自于 1970-01-01 08:00:00
0
0
0
从多个表中提取数据的游标使用方法
来自于 1970-01-01 08:00:00
0
0
0
SQL中具有不同粒度的标志
来自于 1970-01-01 08:00:00
0
0
0
Python 游标无法从存储过程检索结果
来自于 1970-01-01 08:00:00
0
0
0
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板