从存储过程中的 SELECT 语句中获取标量值 [英] Get scalar value from SELECT statement in stored proc, from within a stored proc

查看:38
本文介绍了从存储过程中的 SELECT 语句中获取标量值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道从存储过程返回标量值的首选方法是使用 RETURNOUTPUT 参数.但是可以说我有一个使用 select 语句返回值的存储过程:

CREATE PROC spReturnNumber AS选择 1

是否可以从另一个存储过程中获取此值?

CREATE PROC spCheckNumber ASEXEC spReturnNumber -- <-- 在这里获取返回值?

说明:我需要一个不需要使用 OUTPUT 参数或使用 RETURN 返回值的解决方案.>

提前致谢.

解决方案

您可以使用 insert-exec 来将存储过程的结果存储在表中:

声明@t 表(col1 int)插入@t exec spReturnNumber返回(从@t 中选择 col1)

表的定义必须与存储过程的结果集相匹配.

I know the preferred method for returning scalar values from stored procs is either using RETURN or an OUTPUT parameter. But lets say that I have a stored proc that returns the value using a select statement:

CREATE PROC spReturnNumber AS

SELECT 1

Is it possible to get this value from within another stored proc?

CREATE PROC spCheckNumber AS

EXEC spReturnNumber -- <-- get the return value here?

Clarification: I need a solution that doesn't require using an OUTPUT parameter, or using RETURN to return the value.

Thanks in advance.

解决方案

You could use insert-exec to store the result of a stored procedure in a table:

declare @t table (col1 int)
insert @t exec spReturnNumber
return (select col1 from @t)

The definition of the table has to match the result set of the stored procedure.

这篇关于从存储过程中的 SELECT 语句中获取标量值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆