存储过程中return关键字的实际目的是什么?

时间:2019-12-22 08:28:13

标签: sql sql-server stored-procedures

在第一个存储过程代码中,我没有在代码末尾提到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  

1 个答案:

答案 0 :(得分:2)

SQL Server RETURN是用于向调用方指示用户定义的成功/失败代码的设计。

这两个过程都返回0(默认值)。

尝试:

DECLARE @return_status int;  
EXEC @return_status = uspProductList; 
SELECT @return_status;  -- 0

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/return-transact-sql?view=sql-server-ver15