回答

收藏

如何将exec存储过程的结果设置为变量?

技术问答 技术问答 286 人阅读 | 0 人回复 | 2023-09-13

我需要执行一个存储过程,并将其标量结果存储在存储过程中的局部变量中。
. [, T. O8 p0 [2 s5 S% T2 G* |如何实施?3 \5 ]0 i- i+ }" o! _* A/ X
例如
" A. [( E+ y+ }2 {9 Y( wCREATE PROCEDURE [dbo].GetNthNo AS  DECLARE @a INT DECLARE @d INT DECLARE @n INTDECLARE @S INTSET @S=EXEC spGetNthNo @a,@d,@nSELECT @S请帮忙。0 m- H$ j7 S% ?7 W
                                                               
/ s/ Z6 ~: C& a+ t# I1 A    解决方案:                                                               
8 b# d% d6 v2 x: T& Q/ t3 N                                                                代替:
( a/ F1 u: o/ dSET @S=EXEC spGetNthNo @a,@d,@n你需要:
% Q: M' l4 u$ x% }' M. WEXEC @S = spGetNthNo @a,@d,@n然后过程中,您需要类似以下内容:1 F, x6 ~2 o8 N  R# U
RETURN 100或者:
! ]+ R. }1 z) T# @* A( a# g9 K5 rRETURN @x执行过程后获取@S所需的值。
& |( |& r! z' ^, \$ Q您还可以使用输出参数。组合示例:
& b5 Q( {! E7 h% F2 G0 VIF OBJECT_ID('tempdb..#example') IS NOT NULL DROP PROCEDURE #exampleGOCREATE PROCEDURE #example  @output_param INT OUTPUTAS BEGIN   SET @output_param = 100   RETURN 200ENDGODECLARE @return INT,@param INTEXEC @return = #example @output_param = @param OUTPUTSELECT @return as [return value],@param as [output parameter]
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则