如何在SELECT语句中调用存储过程的结果

 我来答
育知同创教育
2017-05-03 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部

在SELECT语句中调用存储过程的结果:

直接调用好像不可以!不过你可以把存储过程中的内容插入一张临时表,然后再从临时表中调用!

create table table1(a1 int ,a2 int,a3 int)
insert table1
select 1,3,4 union all
select 2,3,4 union all
select 6,7,8 union all
select 9,1,6 union all
select 12,13,16
 
select * from table1
/*
a1          a2          a3
----------- ----------- -----------
1           3           4
2           3           4
6           7           8
9           1           6
12          13          16
*/
 
go
--随便写个存储过程
create proc Proc_table1 
(@a1 int ,@a2 int, @a3 int)
as
begin
    select 2*@a1+3*@a2+@a3
end
 
go
create table #t(asum int)
declare my_cursor cursor for
select a1,a2,a3 from table1
open my_cursor
declare @a1 int, @a2 int,@a3 int 
fetch next from my_cursor into @a1,@a2,@a3
while(@@fetch_status=0)
  begin
    insert into #t exec Proc_table1 @a1,@a2,@a3 --执行存储过程
    fetch next from my_cursor into @a1,@a2,@a3
  end
close my_cursor
deallocate my_cursor
select sum(asum) from #t
/*
179
*/
drop table #t
果然够44
2017-05-03 · 超过121用户采纳过TA的回答
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:103万
展开全部
SQL Server中存储过程的返回值不是通过return语句返回的(return语句是在用户自定义函数中使用的),而是通过存储过程的参数来返回,在定义存储过程的参数时使用关键字output来指定此参数是返回值。 而在调用存储过程时,也必须使用关键字给接收返
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式