如何在没有输出参数的情况下从存储过程返回值

mre*_*mre 2 sql stored-procedures return-value sql-server-2008-r2

这是我目前使用的存储过程的伪代码,

CREATE PROC uspFoo
(
@id int,
@type nvarchar(255),
@status bit output
)
AS
IF ....
SET @status=1
ELSE
SET @status=0
GO
Run Code Online (Sandbox Code Playgroud)

执行此存储过程时,我被迫传递一个输出参数,该参数将存储其返回值,

DECLARE @id int, @type nvarchar(255), @status bit
SET @id=..
SET @type=..
EXEC uspFoo @id, @assayType, @status output

PRINT @status

GO
Run Code Online (Sandbox Code Playgroud)

返回值,或者在这种情况下status,将为0(假)或1(真).

如何bit直接返回值(例如)而不必将其存储在临时输出参数中?

csm*_*118 5

在这种情况下,您可以使用存储过程的返回值.以下应该有效.

CREATE PROC uspFoo
(
@id int,
@type nvarchar(255)
)
AS
IF ....
  RETURN 1
ELSE
  RETURN 0
GO
Run Code Online (Sandbox Code Playgroud)

致电:

DECLARE @id int, @type nvarchar(255), @status bit
SET @id=..
SET @type=..
EXEC @status=uspFoo @id, @assayType

PRINT @status
Run Code Online (Sandbox Code Playgroud)