2012-07-31 64 views
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(假)或1(真)。

如何直接返回值(例如bit)而不必將其存儲在臨時輸出參數中?

+0

你可能會考慮[標量用戶自定義函數(http://msdn.microsoft.com/en-us/library/aa175085%28v=sql.80% 29.aspx),您可能會從查詢中調用,與存儲過程不同。 – 2012-07-31 22:29:54

回答

5

在這種情況下,您可以使用存儲過程的返回值。以下應該工作。

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 
相關問題