Eseguire la stored procedure con un parametro di output?

Ho una stored procedure che sto cercando di testare. Sto cercando di testarla attraverso SQL Management Studio. Per eseguire questo test inserisco ...

exec my_stored_procedure 'param1Value', 'param2Value'

Il parametro finale è un parametro di uscita. Tuttavia, non so come testare una stored procedure con parametri di output.

Come posso eseguire una stored procedure con un parametro di output?

Soluzione

Il modo più semplice è quello di cliccare col tasto destro sulla procedura in Sql Server Management Studio(SSMS),

selezionare eseguire la stored procedure...

e aggiungere valori per i parametri input come richiesto.

SSMS genererà quindi il codice per eseguire la procedura in una nuova finestra di query e la eseguirà per voi. Puoi studiare il codice generato per vedere come viene fatto.

Commentari (4)

puoi fare questo:

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

Da http://support.microsoft.com/kb/262499

Esempio:

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

Spero che questo aiuti!

Commentari (0)