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

Come assegnare un risultato exec a una variabile sql?

Uso sempre il valore restituito per restituire lo stato di errore. Se hai bisogno di restituire un valore, userei un parametro di output.

stored procedure di esempio, con un parametro OUTPUT:

CREATE PROCEDURE YourStoredProcedure 
(
    @Param1    int
   ,@Param2    varchar(5)
   ,@Param3    datetime OUTPUT
)
AS
IF ISNULL(@Param1,0)>5
BEGIN
    SET @Param3=GETDATE()
END
ELSE
BEGIN
    SET @Param3='1/1/2010'
END
RETURN 0
GO

chiamata alla stored procedure, con parametro OUTPUT:

DECLARE @OutputParameter  datetime
       ,@ReturnValue      int

EXEC @ReturnValue=YourStoredProcedure 1,null, @OutputParameter OUTPUT
PRINT @ReturnValue
PRINT CONVERT(char(23),@OutputParameter ,121)

USCITA:

0
2010-01-01 00:00:00.000