2

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

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

在执行这个存储过程时,我不得不传递一个输出参数来存储它的返回值,

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

PRINT @status

GO

返回值或在本例status中为 0 (false) 或 1 (true)。

我怎样才能bit直接返回一个值(例如),而不必将它存储在一个临时输出参数中?

4

1 回答 1

6

在这种情况下,您可以使用存储过程的返回值。以下应该工作。

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

致电:

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

PRINT @status
于 2012-07-31T15:29:58.630 回答