博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

SQL游标的应用实例

Posted on 2010-04-04 11:52  雁过留声  阅读(261)  评论(3)    收藏  举报

---案例:为了给所有参加考试的学生生成一个随机码,用于考试登录。

--那么就要遍历表所有的行,为了一个访问数据库就完成工作,我采用了游标来遍历每一行;

--功能:根据学号来更新随机码

 

create proc [dbo].[ResetVlidCode] --过程名
as
begin
declare @code varchar(100) --声明一个变量随机码
declare @studNo varchar(50) --学生学号
Declare row Cursor For --声明游标row
Select StudNo,ValidCode From StudentUser --StudNo,ValidCode 和@studNo,@code对应
Open row //打开游标
Fetch Next From row into @studNo,@code --StudNo,ValidCode 和@studNo,@code对应
While @@FETCH_STATUS = 0 --完成状态
Beginset @code=NEWID() --获得随机码
set @code= substring(@code,1,6) --取得随机码,只取6位数
update StudentUser Set ValidCode = @code where StudNo=@studNo --更新操作
Fetch Next From row into @studNo,@code
EndClose row
Deallocate row
end