sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan indstilles resultatet af exec lagret procedure til en variabel?

I stedet for:

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

Du skal bruge:

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

Og så inden for proceduren har du brug for noget som:

RETURN 100

eller:

RETURN @x

for den værdi, du ønsker for @S, efter at proceduren er udført.

Du kan også bruge output-parametre. Kombineret eksempel:

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. Sammenføjning af 3 tabeller Oracle SQL

  2. MySQL påstandslignende begrænsning

  3. Indsæt værdiliste matcher ikke kolonneliste:1136 Kolonneantal matcher ikke værdiantal

  4. SQL Server Maksimalt antal rækker, der kan indsættes i en enkelt indsættelseserklæring