Executar procedimento gravado com um parâmetro de Saída?

Eu tenho um procedimento armazenado que estou a tentar testar. Estou a tentar testá-lo através do SQL Management Studio. Para executar este teste, eu digito ...

exec my_stored_procedure 'param1Value', 'param2Value'

O parâmetro final é um parâmetro de saída. Entretanto, eu não sei como testar um procedimento armazenado com parâmetros de saída.

Como faço para executar um procedimento armazenado com um parâmetro de saída?

Solução

A maneira mais fácil é clique com o botão direito no procedimento em **Sql Server Management Studio***(SSMS),

selecione `executar procedimento de armazenamento...'.

e adicionar valores para os parâmetros input, conforme solicitado.

O SSMS irá então gerar o código para executar o proc em uma nova janela de consulta, e executá-lo para você. Você pode estudar o código gerado para ver como ele é feito.

Comentários (4)

você pode fazer isso :

declare @rowCount int
exec yourStoredProcedureName @outputparameterspOf = @rowCount output
Comentários (2)

A partir de http://support.microsoft.com/kb/262499

Exemplo:

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

Espero que isto ajude!

Comentários (0)