Heim > Datenbank > MySQL-Tutorial > Wie übergebe ich das Ergebnis eines Ausdrucks als Parameter in einer gespeicherten SQL Server-Prozedur?

Wie übergebe ich das Ergebnis eines Ausdrucks als Parameter in einer gespeicherten SQL Server-Prozedur?

Patricia Arquette
Freigeben: 2025-01-11 17:01:42
Original
546 Leute haben es durchsucht

How to Pass the Result of an Expression as a Parameter in a SQL Server Stored Procedure?

Ü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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage