日期:2014-05-19  浏览次数:20481 次

存储过程调用存储过程,如何接收其结果
存储过程1
sp1:两个参数v1,v2
select   '1 '
存储过程2
declare   @tmpstr   varchar(10)
SET   @tmpstr=(EXECUTE   sp1(v1,v2))
目的就是想将得到sp1返回的 '1 ',并赋给@tmpstr,但报错
在关键字   'execute '   附近有语法错误。
第   15   行:   ') '   附近有语法错误。

应该怎么写呢?

------解决方案--------------------
存储过程2

create table #(
x varchar(10)
)
insert #
EXECUTE sp1 v1,v2

declare @tmpstr varchar(10)
select @tmpstr=x from #



------解决方案--------------------
--創建存儲過程
Create ProceDure sp1(@v1 Int, @v2 Int)
As
Return @v1 + @v2
GO
--測試
declare @tmpstr varchar(10), @v1 Int, @v2 Int
Select @v1 = 1, @v2 = 10
EXECUTE @tmpstr=sp1 @v1,@v2
Select @tmpstr
GO
--刪除測試存儲過程
Drop ProceDure sp1
--結果
/*
11
*/