存儲過程輸出參數

在本教學中,將學習如何使用輸出參數將數據返回給調用程式。

創建輸出參數

若要為存儲過程創建輸出參數,請使用以下語法:

parameter_name data_type OUTPUT

存儲過程可以具有許多輸出參數。 另外,輸出參數可以是任何類型,例如:整數,日期和變化的字元。

例如,以下存儲過程按型號年份查找產品,並通過@product_count輸出參數返回產品數:

CREATE PROCEDURE uspFindProductByModel (
    @model_year SMALLINT,
    @product_count INT OUTPUT
) AS
BEGIN
    SELECT
        product_name,
        list_price
    FROM
        production.products
    WHERE
        model_year = @model_year;

    SELECT @product_count = @@ROWCOUNT;
END;

在此存儲過程中:

首先,創建了一個名為@product_count的輸出參數來存儲查詢到的產品數量:

@product_count INT OUTPUT

其次,在SELECT語句之後,將查詢返回的行數(@@ROWCOUNT)分配給@product_count參數。

執行上面的CREATE PROCEDURE語句後,將編譯uspFindProductByModel存儲過程並將其保存在資料庫目錄中。

如果一切正常,SQL Server會發出以下輸出:

命令已成功完成。

使用輸出參數調用存儲過程

要使用輸出參數調用存儲過程,請按照下列步驟操作:

  • 首先,聲明變數以保存輸出參數返回的值。
  • 其次,在存儲過程調用中使用這些變數。

例如,以下語句執行uspFindProductByModel存儲過程:

DECLARE @count INT;

EXEC uspFindProductByModel
    @model_year = 2018,
    @product_count = @count output;

SELECT @count AS '產品總數量:';

執行上面查詢語句,得到以下結果:

使用輸出參數調用存儲過程


上一篇: SQL Server存儲過程 下一篇: SQL Server用戶定義函數