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

Hvordan tildeler man et exec-resultat til en sql-variabel?

Jeg bruger altid returværdien til at sende fejlstatus tilbage. Hvis du har brug for at sende en værdi tilbage, vil jeg bruge en output-parameter.

prøve lagret procedure med en OUTPUT parameter:

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

kald til den lagrede procedure med en OUTPUT parameter:

DECLARE @OutputParameter  datetime
       ,@ReturnValue      int

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

OUTPUT:

0
2010-01-01 00:00:00.000


  1. Rolle eksisterer ikke og kan ikke oprette database ved brug af PostgreSQL

  2. Postgres trigger-baseret omdirigering af indsats uden at bryde RETURNING

  3. Skrivning til MySQL-database med pandaer ved hjælp af SQLAlchemy, to_sql

  4. Opret en SQL Server-database med SQLOPS