Какова реальная цель ключевого слова возврата в хранимой процедуре? - PullRequest
0 голосов
/ 22 декабря 2019

В первом коде хранимой процедуры я не упомянул ключевое слово 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 Ответ

2 голосов
/ 22 декабря 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...