执行带有输出参数的存储过程?

我有一个存储过程,我正在尝试测试。我试图通过SQL Management Studio来测试它。为了运行这个测试,我输入...

exec my_stored_procedure 'param1Value', 'param2Value'

最后的参数是一个 "输出参数"。但是,我不知道如何测试一个带有输出参数的存储过程。

我如何运行一个带有输出参数的存储过程?

解决办法

简单的方法是在Sql Server Management Studio(SSMS)中**右键点击程序`。

选择 "执行存储过程..."。

并根据提示为输入参数添加值。

SSMS将在一个新的查询窗口中生成运行存储过程的代码,并为你执行它。你可以研究生成的代码,看看它是如何完成的。

评论(4)

你可以这样做。

declare @rowCount int
exec yourStoredProcedureName @outputparameterspOf = @rowCount output
评论(2)

来自http://support.microsoft.com/kb/262499

例子。

CREATE PROCEDURE Myproc

@parm varchar(10),
**@parm1OUT varchar(30) OUTPUT**,
**@parm2OUT varchar(30) OUTPUT**
AS
  SELECT @parm1OUT='parm 1' + @parm
 SELECT @parm2OUT='parm 2' + @parm

GO

DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
DECLARE @parmIN VARCHAR(10)
DECLARE @parmRET1 VARCHAR(30)
DECLARE @parmRET2 VARCHAR(30)

SET @parmIN=' returned'
SET @SQLString=N'EXEC Myproc @parm,
                         @parm1OUT OUTPUT, @parm2OUT OUTPUT'
SET @ParmDefinition=N'@parm varchar(10),
                  @parm1OUT varchar(30) OUTPUT,
                  @parm2OUT varchar(30) OUTPUT'

EXECUTE sp_executesql
@SQLString,
@ParmDefinition,
@parm=@parmIN,
@parm1OUT=@parmRET1 OUTPUT,@parm2OUT=@parmRET2 OUTPUT

SELECT @parmRET1 AS "parameter 1", @parmRET2 AS "parameter 2"
GO
DROP PROCEDURE Myproc

希望这对您有所帮助!

评论(0)