请教存储过程中怎么提取查询的结果,多谢
请问存储过程中如何提取查询的结果,谢谢
我刚刚学习存储过程,遇到问题,请大家帮帮忙,谢谢了。
请问如何在存储过程中提取select查询结果到局部变量中,可以进行下一步更新操作。
因为我指定了top 1 仅仅返回一条记录,如果存在应该如何取出结果中的score这一列啊
set @score=score
这里提示列名'score'无效
还有就是在更新完毕以后,想要依然可以返回这个select的所有列的内容给客户端程序。
如果在存储过程中多次select,如何在外部访问这些查询出来的结果呢
谢谢了
------解决方案--------------------
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参数可以传到客户端开发工具接受值的
------解决方案--------------------
我刚刚学习存储过程,遇到问题,请大家帮帮忙,谢谢了。
请问如何在存储过程中提取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