Heim > Datenbank > MySQL-Tutorial > Wie erfasst man dynamische SQL-Abfrageergebnisse in einer gespeicherten Prozedurvariablen in SQL Server?

Wie erfasst man dynamische SQL-Abfrageergebnisse in einer gespeicherten Prozedurvariablen in SQL Server?

DDD
Freigeben: 2025-01-11 11:04:41
Original
350 Leute haben es durchsucht

How to Capture Dynamic SQL Query Results into a Stored Procedure Variable 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>
Nach dem Login kopieren

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

Dieser verbesserte Ansatz nutzt die folgenden Schlüsselelemente:

  • @cntVariable: Das dynamische SQL weist das COUNT(*)-Ergebnis einer lokalen Variablen zu, @cnt.
  • OUTPUT Schlüsselwort: Das Schlüsselwort OUTPUT bezeichnet @cnt als Ausgabeparameter.
  • sp_executesqlParameter: sp_executesql erhält jetzt sowohl den @city Eingabeparameter als auch den @cnt Ausgabeparameter.
  • Ergebnisabruf: Abschließend zeigt 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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage