Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment définir le résultat de la procédure stockée exec sur une variable?

Au lieu de :

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

Vous avez besoin :

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

Et puis dans la procédure, vous avez besoin de quelque chose comme :

RETURN 100

ou :

RETURN @x

pour la valeur que vous voulez pour @S après l'exécution de la procédure.

Vous pouvez également utiliser des paramètres de sortie. Exemple combiné :

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]