Heim >Datenbank >MySQL-Tutorial >Wie rufe ich Ergebnisse aus dynamischem SQL in gespeicherten SQL Server-Prozeduren ab?

Wie rufe ich Ergebnisse aus dynamischem SQL in gespeicherten SQL Server-Prozeduren ab?

Linda Hamilton
Linda HamiltonOriginal
2025-01-11 10:28:42461Durchsuche

How to Retrieve Results from Dynamic SQL in SQL Server Stored Procedures?

Dynamische SQL-Ergebnisse aus gespeicherten SQL Server-Prozeduren abrufen

In einer gespeicherten Prozedur müssen nach der Ausführung von dynamischem SQL die Ergebnisse normalerweise zur weiteren Verarbeitung abgerufen werden. Ein Beispiel ist die Bestimmung der Anzahl der Datensätze, die von einer dynamischen SQL-Abfrage erzeugt werden.

Dynamisches SQL ausführen

Verwenden Sie im bereitgestellten Code-Snippet sp_executesql, um dynamisches SQL auszuführen, um die Anzahl der Kunden in einer bestimmten Stadt zu ermitteln. Dynamisches SQL wird durch @sqlCommand dargestellt und akzeptiert Parameter @city.

Suchergebnisse

Um den Zählwert als Rückgabewert der gespeicherten Prozedur abzurufen, werden die folgenden Schritte ausgeführt:

  1. Deklarieren Sie einen neuen intTypparameter@cnt, um den Zählwert zu speichern.
  2. Ändern Sie die dynamische SQL-Anweisung und setzen Sie die Ausgabevariable @cnt auf den Wert COUNT(*).
  3. Rufen Sie sp_executesql mit modifiziertem dynamischem SQL auf und geben Sie @cnt als Ausgabeparameter in der Parameterliste an.

Beispielcode

<code class="language-sql">DECLARE @sqlCommand NVARCHAR(1000);
DECLARE @count INT;
DECLARE @city VARCHAR(75);
SET @city = 'New York';

SET @sqlCommand = 'SELECT @cnt=COUNT(*) FROM customers WHERE City = @city';
EXECUTE sp_executesql @sqlCommand, N'@city nvarchar(75), @cnt int OUTPUT', @city = @city, @cnt = @count OUTPUT;

SELECT @count;</code>

Das obige ist der detaillierte Inhalt vonWie rufe ich Ergebnisse aus dynamischem SQL in gespeicherten SQL Server-Prozeduren ab?. 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