问题描述
我知道从存储过程返回标量值的首选方法是使用 RETURN
或 OUTPUT
参数.但是可以说我有一个使用 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 语句中获取标量值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!