Heim >Datenbank >MySQL-Tutorial >Wie kann ich Werte zwischen SQL-Code und gespeicherten Prozeduren übergeben?

Wie kann ich Werte zwischen SQL-Code und gespeicherten Prozeduren übergeben?

Linda Hamilton
Linda HamiltonOriginal
2025-01-03 17:41:39176Durchsuche

How Can I Pass Values Between SQL Code and Stored Procedures?

Übergabe von Werten zwischen SQL-Code und gespeicherten Prozeduren

Bei der Arbeit mit SQL ist es manchmal notwendig, das Ergebnis eines Exec-Aufrufs einer Variablen zuzuweisen. In diesem Szenario möchten Sie die Ausgabe von up_GetBusinessDay einer Variablen namens @PreviousBusinessDay zuweisen.

Einschränkungen beim direkten Zuweisen von Exec-Ergebnissen

Obwohl es logisch erscheinen mag, das Exec-Ergebnis direkt einem zuzuweisen Variable, dieser Ansatz wird in SQL nicht unterstützt. Der Grund dafür ist, dass die exec-Anweisung zum Ausführen gespeicherter Prozeduren verwendet wird, ohne einen Wert zurückzugeben. Daher können Sie das Exec-Ergebnis nicht direkt einer Variablen zuweisen.

Ausgabeparameter verwenden

Um einen einzelnen Wert von einer gespeicherten Prozedur zurückzugeben, können Sie einen Ausgabeparameter verwenden. Mit einem Ausgabeparameter können Sie eine Variable angeben, die den von der gespeicherten Prozedur zurückgegebenen Wert empfängt. So erstellen und verwenden Sie einen Ausgabeparameter in SQL Server:

Definition der gespeicherten Prozedur:

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

Gespeicherte Prozedur Aufruf:

DECLARE @OutputParameter datetime
       ,@ReturnValue     int

EXEC @ReturnValue = YourStoredProcedure 1, NULL, @OutputParameter OUTPUT

PRINT @ReturnValue
PRINT CONVERT(char(23), @OutputParameter, 121)

Ausgabe:

0
2010-01-01 00:00:00.000

Durch die Verwendung eines Ausgabeparameters können Sie das Ergebnis eines Exec-Aufrufs effektiv einer Variablen zuweisen . Diese Technik wird häufig verwendet, wenn Sie einen einzelnen Wert aus einer gespeicherten Prozedur abrufen müssen.

Das obige ist der detaillierte Inhalt vonWie kann ich Werte zwischen SQL-Code und gespeicherten Prozeduren übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn