Heim >Datenbank >MySQL-Tutorial >Wie erfasst man dynamische SQL-Abfrageergebnisse in einer gespeicherten Prozedurvariablen in SQL Server?
Abrufen von Ergebnissen aus dynamischem SQL in gespeicherten SQL Server-Prozeduren
Das Arbeiten mit dynamischem SQL innerhalb gespeicherter Prozeduren erfordert häufig die Erfassung der Abfrageergebnisse. Das kann schwierig sein, aber hier ist eine Lösung zum effizienten Abrufen dynamischer Abfrageergebnisse in einer gespeicherten Prozedurvariablen.
Angenommen, Sie müssen eine Abfrage wie diese dynamisch ausführen:
<code class="language-sql">DECLARE @sqlCommand NVARCHAR(1000) DECLARE @city VARCHAR(75) SET @city = 'London' SET @sqlCommand = 'SELECT COUNT(*) FROM customers WHERE City = @city' EXECUTE sp_executesql @sqlCommand, N'@city VARCHAR(75)', @city = @city</code>
Bei der direkten Ausführung wird das Ergebnis nicht in einer Variablen gespeichert. Um die Ausgabe zu erfassen, ändern Sie den Code wie folgt:
<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 VARCHAR(75), @cnt INT OUTPUT', @city = @city, @cnt = @count OUTPUT SELECT @count</code>
Dieser verbesserte Ansatz nutzt die folgenden Schlüsselelemente:
@cnt
Variable: Das dynamische SQL weist das COUNT(*)
-Ergebnis einer lokalen Variablen zu, @cnt
.OUTPUT
Schlüsselwort: Das Schlüsselwort OUTPUT
bezeichnet @cnt
als Ausgabeparameter.sp_executesql
Parameter: sp_executesql
erhält jetzt sowohl den @city
Eingabeparameter als auch den @cnt
Ausgabeparameter.SELECT @count
das erfasste Ergebnis an. Diese Variable enthält nun die von der dynamischen Abfrage zurückgegebene Anzahl.Diese Methode bietet eine robuste Möglichkeit, Ergebnisse von dynamischem SQL in Ihren gespeicherten Prozeduren zu verarbeiten und sorgt so für einen genauen und effizienten Datenabruf.
Das obige ist der detaillierte Inhalt vonWie erfasst man dynamische SQL-Abfrageergebnisse in einer gespeicherten Prozedurvariablen in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!