如何在 SQL 存储过程中使用返回值,或如何使用返回值从存储过程返回消息(附带示例)。
SQL Server 存储过程中的返回值仅返回整数值。默认情况下,如果成功执行任何存储过程,它将返回 0。为了演示此存储过程的返回值,我们将使用下表。

SQL 存储过程返回值示例
在此示例中,我们将向您展示服务器返回的默认返回值。为了演示返回值,我将执行之前创建的存储过程。
我建议您参考 SP 简介 文章来学习 SQL Server 存储过程的基础知识。并参考 存储过程中的输入参数 文章来了解此存储过程背后的定义。

在这里,我们将职业值设置为“管理”。

单击“确定”按钮后,将打开一个新的查询窗口,其中包含以下自动生成的代码。如您所见,它返回 0 作为返回值。0 表示成功。
DECLARE @return_value int EXEC @return_value = [dbo].[spGetEmployeeDetails] @Occupation = N'Management' SELECT 'Return Value' = @return_value GO

带返回值的 SQL Server 存储过程示例 2
在此返回值示例中,我们将展示如何在存储过程中使用返回值。请参考 Select SP 文章在存储过程中编写 Select 语句。
在过程中,我们将使用 COUNT 来查找 Employee Duplicate 表中的员工数量,然后返回该值。
-- Example for Stored Procedure with Output Parameters CREATE PROCEDURE [dbo].[spCountEmployees] AS BEGIN RETURN (SELECT COUNT(EmpID)FROM [EmployeeDuplicates]) END
Messages
--------
Command(s) completed successfully.
让我执行存储过程。
-- Declare a Variable of Type Int. Should match with SP's Output parameter DECLARE @TotalEmployees INT -- Assigning the Output of a Stored Procedure to Declared variable EXEC @TotalEmployees = [dbo].[spCountEmployees] -- Printing the Output PRINT @TotalEmployees

SP 返回值示例 3
在此存储过程示例中,我将向您展示如果打印字符串(Varchar)数据作为返回值会发生什么。在这里,我们将查找姓氏为 Gateway 的员工的职业。(您也可以尝试使用输入参数,而不是硬编码值)。
CREATE PROCEDURE [dbo].[spEmployeeName]
AS
BEGIN
RETURN (SELECT [Occupation] FROM [EmployeeDuplicates]
WHERE [LastName] = N'Gateway')
END
Messages
--------
Command(s) completed successfully.
让我执行存储过程。
DECLARE @EmpName VARCHAR(50) EXEC @EmpName = [dbo].[spEmployeeName] PRINT @EmpName
从下面的屏幕截图可以看出,它正在抛出错误。因为返回值始终只显示整数。

评论已关闭。