> php教程 > PHP开发 > 본문

SQL 커서 사용 예

高洛峰
풀어 주다: 2016-12-14 11:23:37
원래의
1143명이 탐색했습니다.

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
로그인 후 복사


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!