Udføre lagret procedure med en outputparameter?

Jeg har en lagret procedure, som jeg forsøger at teste. Jeg forsøger at teste den via SQL Management Studio. For at køre denne test indtaster jeg ...

exec my_stored_procedure 'param1Value', 'param2Value'

Den sidste parameter er en output parameter. Jeg ved dog ikke, hvordan man tester en stored procedure med outputparametre.

Hvordan kører jeg en lagret procedure med en udgangsparameter?

Løsning

Den nemme måde er at højreklikke på proceduren i Sql Server Management Studio**(SSMS),

vælg execute stored procedure...

og tilføj værdier til input-parametrene som angivet.

SSMS vil derefter generere koden til at køre proc'en i et nyt forespørgselsvindue og udføre den for dig. Du kan studere den genererede kode for at se, hvordan det foregår.

Kommentarer (4)

du kan gøre dette :

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

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

Eksempel:

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

Håber dette hjælper!

Kommentarer (0)