Ian*_*Ian 6 sql sql-server oracle stored-procedures function
在Oracle中,
我们可以声明输入输出参数(不仅仅是输入或输出),如下所示:
Create Or Replace Procedure USERTEST.SimpleInOutProcedure(
    p_InputInt Int,
    p_OutputInt out Int,
    p_InputOutputInt in out Int
) AS
BEGIN
    p_OutputInt := p_InputInt + 1;
    p_InputOutputInt := p_InputOutputInt + p_InputOutputInt;
END;
但是,当我尝试在SQL Server中声明这样的时,脚本将无法编译:
create procedure SimpleInOutProcedure 
    @p_InputInt int, @p_OutputInt int input output
As
Begin
    Select * from TestTableCommonA;
End
单词"input"不是预期的,因此在SQL Server Management Studio中不是蓝色的:
我的脚本出了什么问题,如何在SQL Server存储过程/函数中声明输入输出参数?
我想这样做是因为我需要为之前为Oracle DB创建的SQL Server DB创建"等效"阅读器,并具有读/出参数.
Jay*_*esh 15
如果将参数声明为OUTPUT,则它将充当"输入"和"输出"
CREATE PROCEDURE SimpleInOutProcedure 
(
    @p_InputInt  INT,
    @p_OutputInt INT OUTPUT
)
AS
BEGIN
    SELECT 
       @p_OutputInt = @p_OutputInt
END
GO
DECLARE @p_OutputInt int = 4
EXEC SimpleInOutProcedure @p_InputInt = 1, @p_OutputInt = @p_OutputInt OUTPUT
SELECT @p_OutputInt