79

我有一个存储过程,它以 0 或 1 的 RETURN 值结束。

我想在另一个存储过程的 IF 语句中使用这个值。

如何获取前一个存储过程的返回值并将其保存在后者的变量中?

我找不到任何相关的东西。所有问题都是关于在 C# 中获取 RETURN 值。

我在想,也许是这样的:

SP_二

DECLARE @returnValue INT
SET @returnValue = EXEC SP_One

IF @returnValue = 1
BEGIN
   --do something
END
ELSE
BEGIN
   --do something else
END
4

3 回答 3

108

这应该适合你。事实上,您正在考虑的那个也可以:-

 .......
 DECLARE @returnvalue INT

 EXEC @returnvalue = SP_One
 .....
于 2012-11-28T12:40:40.577 回答
26

接受的答案对双重 EXEC 无效(只需要第一个 EXEC):

DECLARE @returnvalue int;
EXEC @returnvalue = SP_SomeProc
PRINT @returnvalue

而且您仍然需要调用 PRINT(至少在 Visual Studio 中)。

于 2013-10-17T19:59:28.860 回答
10

EXEC在令牌之后分配:

DECLARE @returnValue INT

EXEC @returnValue = SP_One
于 2012-11-28T12:42:40.003 回答