簡體   English   中英

從存儲過程返回多個輸出

[英]Return multiple output from a stored procedure

可以使用以下命令將多個輸出值返回到父存儲過程

exec'存儲過程名稱''inputval','outval1','outval2'

exec sp_SubSalaryCalcuation @sec1_in,@sec1_out,@worktimefrm,@worktimeto,@out_timestatus OUTPUT,@out_status OUTPUT,@out_overtime OUTPUT

我需要調用此存儲過程

ALTER PROCEDURE [dbo].[sp_SubSalaryCalcuation] 
@out_overtime nvarchar(100) OUTPUT,
@out_status nvarchar(100) OUTPUT,
@out_overtimestatus nvarchar(100) OUTPUT,
@sec1_in nvarchar(200),
@sec1_out nvarchar(200),
AS
BEGIN
SET @out_status=@sec1_in
SET @out_overtime=0
SET @out_overtimestatus=0

END

是。 你可以做到的。 您可以從另一個過程到父過程獲取多個輸出參數。 考慮以下示例。

注意:您應該以與sp_SubSalaryCalcuation過程中相同的順序傳遞參數。

1.家長程序

CREATE PROCEDURE ParentProcedure

    @Param1 nvarchar(30)

AS
BEGIN

    DECLARE @out_timestatus nvarchar(100)
    DECLARE @out_status nvarchar(100)
    DECLARE @out_overtime nvarchar(100)

    SET NOCOUNT ON;

    -- Send parameters in the same order of sp_SubSalaryCalcuation
    exec sp_SubSalaryCalcuation 1,2,3,4,@out_timestatus OUTPUT,@out_status OUTPUT,@out_overtime OUTPUT

    PRINT @out_timestatus
    PRINT @out_status
    PRINT @out_overtime

END
GO

2.子程序

CREATE PROCEDURE sp_SubSalaryCalcuation 
@sec1_in nvarchar(200),
@sec1_out nvarchar(200),
@worktimefrm nvarchar(200),
@worktimeto nvarchar(200),
@out_overtime nvarchar(100) OUTPUT,
@out_status nvarchar(100) OUTPUT,
@out_overtimestatus nvarchar(100) OUTPUT

AS
BEGIN

    SET NOCOUNT ON;

    SET @out_overtime = 10
    SET @out_status = 20
    SET @out_overtimestatus = 30

END
GO

parent procedure參數的結果如下

x-----------------x----------x
|     Variable    |   Value  |
x-----------------x----------x
| @out_timestatus |   10     |
| @out_status     |   20     |
| @out_overtime   |   30     |
x-----------------x----------x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM