在第一个存储过程代码中,我没有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
SQL Server RETURN设计用于向调用方指示用户定义的成功/失败代码。
您的两个过程都返回0(默认值)。
尝试:
DECLARE @return_status int;
EXEC @return_status = uspProductList;
SELECT @return_status; -- 0
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。