Heim > Datenbank > MySQL-Tutorial > Wie behandelt man Ausdrucksergebnisse als gespeicherte Prozedurparameter in SQL Server?

Wie behandelt man Ausdrucksergebnisse als gespeicherte Prozedurparameter in SQL Server?

Susan Sarandon
Freigeben: 2025-01-11 17:17:42
Original
368 Leute haben es durchsucht

How to Handle Expression Results as Stored Procedure Parameters in SQL Server?

Herausforderungen bei gespeicherten SQL Server-Prozedurparametern

Die Verwendung von Parametern mit gespeicherten Prozeduren optimiert die Datenbankentwicklung. Das direkte Einbetten von Ausdrucks- oder Funktionsergebnissen in die Parameterliste einer gespeicherten Prozedur kann jedoch zu Problemen führen. Zum Beispiel der folgende Code:

<code class="language-sql">DECLARE @pID int;
SET @pID = 1;
EXEC WriteLog 'Component', 'Source', 'Could not find given id: ' + CAST(@pID AS varchar);</code>
Nach dem Login kopieren

schlägt in SQL Server 2005 und früheren Versionen fehl und erzeugt den Syntaxfehler „Msg 102“. Diese Einschränkung ergibt sich aus der Art und Weise, wie SQL Server mit Parametern umgeht.

Die Lösung: Zwischenvariablen

Die Problemumgehung besteht darin, eine Zwischenvariable zu verwenden. SQL Server erlaubt keine direkte Einbettung von Ausdrucksergebnissen als Parameter; Eine Zwischenvariable bietet jedoch eine Lösung.

Die korrigierte Syntax lautet:

<code class="language-sql">DECLARE @pID INT;
SET @pID = 1;

/* For SQL Server 2008 and later;  For earlier versions, these must be separate statements */
DECLARE @string VARCHAR(50) = 'Could not find given id: ' + CAST(@pID AS VARCHAR(11));

EXEC WriteLog
  'Component',
  'Source',
  @string;</code>
Nach dem Login kopieren

Indem wir die Ausgabe des Ausdrucks („Angegebene ID konnte nicht gefunden werden: ' CAST(@pID AS VARCHAR(11))) der Variablen @string zuweisen, können wir dann @string als Parameter an WriteLog übergeben. das Ergebnis des Ausdrucks effektiv einzubeziehen. Beachten Sie den wichtigen Unterschied für Versionen vor SQL Server 2008, die separate DECLARE- und SET-Anweisungen erfordern.

Das obige ist der detaillierte Inhalt vonWie behandelt man Ausdrucksergebnisse als gespeicherte Prozedurparameter in SQL Server?. 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