Heim >Datenbank >MySQL-Tutorial >Wie übergebe ich das Ergebnis eines Ausdrucks als Parameter in einer gespeicherten SQL Server-Prozedur?
Übergabe des Ausdrucksergebnisses als Parameter in der gespeicherten SQL Server-Prozedur
Ein Entwickler ist beim Versuch, eine gespeicherte Prozedur auszuführen, auf einen Fehler gestoßen, mit dem Ziel, die Datenbankentwicklung zu verbessern. Der Fehler tritt auf, wenn versucht wird, das Ergebnis eines Ausdrucks (insbesondere die Verkettung der Zeichenfolge „Angegebene ID konnte nicht gefunden werden:“ mit dem Wert der Ganzzahlvariablen @pID) direkt in die Argumentliste zu übergeben.
Allerdings unterstützt SQL Server solche Vorgänge in der Parameterliste selbst nicht. Stattdessen muss eine Zwischenvariable verwendet werden, um das Ergebnis des Ausdrucks zu speichern, bevor es an das Argument übergeben wird.
Die Syntax von EXEC gibt das Format des „Werts“ im Parameterteil nicht explizit an, was darauf hinweist, dass nur einfache Ausdrücke akzeptiert werden. Diese Ausdrücke sind auf Literalwerte und einige Systemfunktionen mit dem Präfix @@ beschränkt. Andere Systemfunktionen, auch solche, die keine Klammern erfordern, sind nicht zulässig.
Um diesen Fehler zu beheben, müssen Entwickler die folgende Syntax verwenden:
<code class="language-sql">DECLARE @pID INT; SET @pID = 1; /*如果使用2008及以上版本,之前的版本需要分成两个单独的语句*/ DECLARE @string VARCHAR(50) = 'Could not find given id: ' + CAST(@pID AS VARCHAR(11)); EXEC WriteLog 'Component', 'Source', @string;</code>
Das obige ist der detaillierte Inhalt vonWie übergebe ich das Ergebnis eines Ausdrucks als Parameter in einer gespeicherten SQL Server-Prozedur?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!