存储过程输出参数

在本教程中,将学习如何使用输出参数将数据返回给调用程序。

创建输出参数

若要为存储过程创建输出参数,请使用以下语法:

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用户定义函数