存储过程可以有输出参数和return语句吗?如果是这样,任何人都可以给我一个简单的例子。谢谢大家。
答案 0 :(得分:2)
存储过程只能在return语句中返回整数类型,并且可以包含任意数量的out参数。 See this用于支持此内容的参考文献。
最简单的存储过程
从SP返回整数值
CREATE procedure [sys].[sp_name]
(
@var1 bit = 0,
@publisher smallint
)
AS
BEGIN
IF @var1<> 0
RETURN (@publisher )
END
使用输出参数
CREATE PROCEDURE GetImmediateManager
@employeeID INT,
@managerID INT OUTPUT
AS
BEGIN
SELECT @managerID = ManagerID
FROM HumanResources.Employee
WHERE EmployeeID = @employeeID
END
您可以使用事务,异常处理(尝试Catch),DDL和DML查询,在一个存储过程中调用另一个存储过程以及更多操作。
请评论存储过程支持的更多功能
答案 1 :(得分:1)
如果你指的是给出整数的标准RETURN语句,那么是
如果你的意思是UDF RETURN,那么没有。但是存储过程可以有一个正常的SELECT
答案 2 :(得分:1)
您可以自由使用OUTPUT
参数和单个RETURN
值:
CREATE PROCEDURE RaiseToPower (
@IN INT,
@OUT INT OUTPUT
)
AS
DECLARE @POWER INT
SET @POWER = 3
SET @OUT = POWER(@IN, @POWER)
RETURN @POWER
GO
/**/
DECLARE @POW INT, @RESULT INT
EXEC @POW = dbo.RaiseToPower 2, @RESULT OUTPUT
SELECT 2, 'raised to', @POW, 'is', @RESULT
>> 2 raised to 3 is 8
答案 3 :(得分:-1)
没有。它可以是存储过程,也可以是标量函数。
标量函数返回一个值,并在参数中取0到n。
存储过程可以从0到n输入参数,并且可以有0到n个输出参数。