【发布时间】:2015-06-01 10:04:53
【问题描述】:
我在 MS SQL 2012 Express 上有一个简单的存储过程,它返回的结果类似于:
DECLARE @value INT;
SELECT @value;
同时我试图调用这个存储过程来做类似的事情
DECLARE @result INT;
EXEC @result = SpFoo .....
但是,我从 SpFoo 获得的 @result 的值是 0。
如何获取存储过程返回的真实值?
谢谢
【问题讨论】:
-
这不是 返回 值(即
RETURN语句)。这将产生一个结果集。您可以使用INSERT ... EXEC捕获它 -
您也可以为此使用
OUTPUT参数。 -
最好的办法是将你的 sp 转换为函数,然后你可以简单地返回任何你想要的值。当你尝试生成结果集时,你不能在 select 中使用它。
-
谢谢大家。我现在了解限制和可能性。
标签: sql-server stored-procedures sql-server-2012-express