SQLServer存储过程简单实例变量赋值游标遍历
版权声明:本⽂为博主原创⽂章,未经博主允许不得转载。 blog.csdn/starandsea/article/details/41384865
应⽤场景:
有两张表,学⽣表和对应的各科成绩表。
学⽣表student
字段: id int name varchar(20)
数值: 1 A
2 Bsql存储过程实例
成绩表score
字段: id int studentid int subjectid int score int
数值:
1 1 1 80
2 1 2 90
3 1 3 100
4 2 1 60
5 2 2 70
⽤存储过程来通过名字获取对应学⽣的成绩最⼤值的科⽬名称。本例的逻辑⽐较简单,⽤⼀句sql就可以实现,这⾥只是演⽰存储过程的基本语法。
创建存储过程:
create procedure getMaxScore(@xname varchar(20))
as
declare @max_score int, @cur_score int
declare cur1 cursor for select score from score where studentid=(select id from student where name = @xname)
set @max_score = 0
open cur1
fetch next from cur1 into @cur_score
while @@fetch_status = 0
begin
if (@cur_score > @max_score)
set @max_score = @cur_score
fetch next from cur1 into @cur_score
end
close cur1
deallocate cur1
select @max_score
调⽤存储过程:
exec getMaxScore 'A'
输出结果:
100
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论