在本教程中,将学习如何使用输出参数将数据返回给调用程序。
创建输出参数
若要为存储过程创建输出参数,请使用以下语法:
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 '产品总数量:';
执行上面查询语句,得到以下结果: