我有一个要测试的存储过程。我试图通过SQL管理工作室测试它。为了运行这个测试,我输入…
exec my_stored_procedure 'param1Value', 'param2Value'
最后一个参数是输出参数。但是,我不知道如何测试带有输出参数的存储过程。
如何运行带有输出参数的存储过程?
我有一个要测试的存储过程。我试图通过SQL管理工作室测试它。为了运行这个测试,我输入…
exec my_stored_procedure 'param1Value', 'param2Value'
最后一个参数是输出参数。但是,我不知道如何测试带有输出参数的存储过程。
如何运行带有输出参数的存储过程?
当前回答
CREATE PROCEDURE DBO.MY_STORED_PROCEDURE
(@PARAM1VALUE INT,
@PARAM2VALUE INT,
@OUTPARAM VARCHAR(20) OUT)
AS
BEGIN
SELECT * FROM DBO.PARAMTABLENAME WHERE PARAM1VALUE=@PARAM1VALUE
END
DECLARE @OUTPARAM2 VARCHAR(20)
EXEC DBO.MY_STORED_PROCEDURE 1,@OUTPARAM2 OUT
PRINT @OUTPARAM2
其他回答
请查看下面的示例,通过执行存储过程获得输出变量值。
DECLARE @return_value int,
@Ouput1 int,
@Ouput2 int,
@Ouput3 int
EXEC @return_value = 'Your Sp Name'
@Param1 = value1,
@Ouput1 = @Ouput1 OUTPUT,
@Ouput2 = @Ouput2 OUTPUT,
@Ouput3 = @Ouput3 OUTPUT
SELECT @Ouput1 as N'@Ouput1',
@Ouput2 as N'@Ouput2',
@Ouput3 as N'@Ouput3'
使用这个查询,你可以执行任何存储过程(带或不带输出参数):
DECLARE @temp varchar(100)
EXEC my_sp
@parameter1 = 1,
@parameter2 = 2,
@parameter3 = @temp output,
@parameter4 = 3,
@parameter5 = 4
PRINT @temp
这里@temp的数据类型应该与存储过程中的@parameter3相同。
这个怎么样?它非常简单:
下面的SPROC有一个输出参数@ParentProductID 我们希望将@ParentProductID的输出值选择为下面声明的@MyParentProductID。 代码如下: 声明@MyParentProductID int exec p_CheckSplitProduct @ProductId = 4077, @ParentProductID = @MyParentProductID输出 选择@MyParentProductID
从过程返回val
ALTER PROCEDURE testme @input VARCHAR(10),
@output VARCHAR(20) output
AS
BEGIN
IF @input >= '1'
BEGIN
SET @output = 'i am back';
RETURN;
END
END
DECLARE @get VARCHAR(20);
EXEC testme
'1',
@get output
SELECT @get
下面是存储过程
create procedure sp1
(
@id as int,
@name as nvarchar(20) out
)
as
begin
select @name=name from employee where id=@id
end
这是执行这个过程的方法
declare @name1 nvarchar(10)
exec sp1 1,@name1 out
print @name1