sql >> Database >  >> RDS >> Sqlserver

Hoe het resultaat van de exec opgeslagen procedure in te stellen op een variabele?

In plaats van:

SET @S=EXEC spGetNthNo @a,@d,@n

Je hebt nodig:

EXEC @S = spGetNthNo @a,@d,@n

En dan heb je binnen de procedure iets nodig als:

RETURN 100

of:

RETURN @x

voor de gewenste waarde voor @S nadat de procedure is uitgevoerd.

U kunt ook uitvoerparameters gebruiken. Gecombineerd voorbeeld:

IF OBJECT_ID('tempdb..#example') IS NOT NULL DROP PROCEDURE #example
GO

CREATE PROCEDURE #example
  @output_param INT OUTPUT
AS BEGIN
   SET @output_param = 100
   RETURN 200
END
GO

DECLARE @return INT, @param INT
EXEC @return = #example @output_param = @param OUTPUT
SELECT @return as [return value], @param as [output parameter]


  1. maximale waarde instellen op een kolom

  2. Hoe verander je nummer (7,2) in varchar in orakel?

  3. afbeelding uploaden naar mysql-database php

  4. NULL vervangen uit resultaten van CASE-query