使用存储过程输出参数

shm*_*dor 1 sql t-sql stored-procedures sql-server-2005 output-parameter

ALTER PROCEDURE dbo.StoredProcedure8
@emp_code bigint,
@co_id bigint,
@p decimal(8,2) output

AS

SELECT @p = (select sum(tran_value) from emp_ded_ben_trans where emp_code=@emp_code and co_id=@co_id and period_flg=2 and tax_flg=0)

RETURN  
Run Code Online (Sandbox Code Playgroud)

Ada*_*Dev 5

要调用该sproc并检索输出参数,您可以(例如):

DECLARE @p DECIMAL(8,2)
EXECUTE dbo.StoredProcedure8 123, 456, @p OUTPUT
-- @p now contains the output value
Run Code Online (Sandbox Code Playgroud)

更新:

你不需要使用RETURN- 你是对的,RETURN只能返回一个INTEGER.但是返回值与OUTPUT参数不同,后者是您实际使用的参数.

即从sproc获取RETURN值,是不同的语法:

DECLARE @Result INTEGER
EXECUTE @Result = SomeSproc
Run Code Online (Sandbox Code Playgroud)