![](/img/trans.png)
[英]How to check only the first value of the row returned from stored procedure in a SQL query
[英]Get first row, first column value from stored procedure
我正在调用一个存储过程(我无法修改),它在过程结束时通过SELECT
返回单个值。 我需要在自己的程序中使用该值。 我怎样才能得到那个价值?
这是我无法修改的调用过程的示例:
CREATE PROCEDURE [dbo].[SP_poorlywritten] (
....
)
BEGIN
....
SELECT @lastkey;
RETURN (0);
END
这是我正在尝试做的,但它不起作用,因为它获得了返回值,而我需要的是SELECT
值:
exec @next_key = SP_poorlywritten 'tablename',1;
如何存储存储过程中的第一列、第一行值?
如果您不能修改现有的存储过程,您将无法像您希望的那样使用RETURN
。
另一种方法是将过程的 select 语句的 output 插入临时表,然后直接查询以填充变量。
看起来像这样。
CREATE TABLE #tmp
(
LastKey INT
)
INSERT INTO #tmp
EXEC [dbo].[SP_poorlywritten]
有关如何完成此操作的更多详细信息,请参阅此现有帖子。
正如 Aaron Bertrand 指出的那样, RETURN
用于错误/状态。 如果您能够修改存储过程,您会希望使用 output 参数而不是RETURN
。 这就是你将如何做到的。
CREATE PROCEDURE proc_name
@Output int OUTPUT
AS
<do some stuff>
SET @Output = <some_value>
GO
DECLARE @Output int
EXEC proc_name @Output = @Output
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.