在第一个存储过程代码中,我没有在代码末尾提到Return
关键字,但仍然得到结果集作为存储过程返回的输出。
但是在来自Microsoft网站的第二个示例代码中,在代码末尾提到了Return
关键字。我对何时在存储过程中使用关键字Return
感到困惑,因为在没有Return
单词的第一个代码中,我会得到结果。
CREATE PROCEDURE uspProductList
AS
BEGIN
SELECT
product_name,
list_price
FROM
production.products
ORDER BY
product_name;
END;
USE AdventureWorks2012;
GO
IF OBJECT_ID('Sales.uspGetEmployeeSalesYTD', 'P') IS NOT NULL
DROP PROCEDURE Sales.uspGetEmployeeSalesYTD;
GO
CREATE PROCEDURE Sales.uspGetEmployeeSalesYTD
AS
SET NOCOUNT ON;
SELECT LastName, SalesYTD
FROM Sales.SalesPerson AS sp
JOIN HumanResources.vEmployee AS e ON e.BusinessEntityID = sp.BusinessEntityID
RETURN
GO
答案 0 :(得分:2)
SQL Server RETURN
是用于向调用方指示用户定义的成功/失败代码的设计。
这两个过程都返回0(默认值)。
尝试:
DECLARE @return_status int;
EXEC @return_status = uspProductList;
SELECT @return_status; -- 0