请教存储过程中怎么提取查询的结果,多谢

请问存储过程中如何提取查询的结果,谢谢
我刚刚学习存储过程,遇到问题,请大家帮帮忙,谢谢了。
请问如何在存储过程中提取select查询结果到局部变量中,可以进行下一步更新操作。
因为我指定了top 1 仅仅返回一条记录,如果存在应该如何取出结果中的score这一列啊
set @score=score
这里提示列名'score'无效
还有就是在更新完毕以后,想要依然可以返回这个select的所有列的内容给客户端程序。
如果在存储过程中多次select,如何在外部访问这些查询出来的结果呢
SQL code

create procedure Calc
    @studentID varchar(50)
as
declare @sql varchar(1024), @score integer
begin
    set @sql='select top 1 * from studentInfo where id='+@studentID
    exec sp_executesql @sql
    
    if @@ROWCOUNT<>0
    begin
        set @score=score
        if @score>90
        begin    
            set @sql='update summary set score=score'+cast(@score as varchar)
            exec sp_executesql @sql
        end
    end
end


谢谢了


------解决方案--------------------
if @@ROWCOUNT<>0
begin
set @score=score
if @score>90
begin
set @sql='update summary set score=score'+cast(@score as varchar)
exec sp_executesql @sql
end
end
红字部分要从某个表里面取或者显式指定值。不然SQLServer不知道你这个值是哪里来的
------解决方案--------------------
create procedure Calc
@studentID varchar(50),
@score output
as
declare @sql varchar(1024)
begin
set @sql='select top 1 * from studentInfo where id='+@studentID
exec sp_executesql @sql

if @@ROWCOUNT<>0
begin
set @score=score
if @score>90
begin
set @sql='update summary set score=score'+cast(@score as varchar)
exec sp_executesql @sql
end
end
end

试试看,使用 storeproce的output参数可以传到客户端开发工具接受值的
------解决方案--------------------
SQL code

--你的写法类似这样,但不知道你想做什么,呵呵
create procedure Calc
    @studentID varchar(50)
as
declare @sql varchar(1024), @score integer
begin
    select top 1 @score=score from studentInfo where id=@studentID
    if @score>90
        update summary set score=@score;
    select * from summary;
end
go