Heim > Datenbank > MySQL-Tutorial > Wie kann ich eine gespeicherte Prozedur für jede von einer T-SQL-Abfrage zurückgegebene Zeile ausführen?

Wie kann ich eine gespeicherte Prozedur für jede von einer T-SQL-Abfrage zurückgegebene Zeile ausführen?

Susan Sarandon
Freigeben: 2024-12-26 17:40:13
Original
156 Leute haben es durchsucht

How Can I Execute a Stored Procedure for Each Row Returned by a T-SQL Query?

Ausführen gespeicherter Prozeduren für jede Zeile von Abfrageergebnissen in T-SQL

Um die Ergebnisse einer Abfrage zu durchlaufen und eine gespeicherte Prozedur auszuführen Für jede Zeile kann in T-SQL ein CURSOR verwendet werden. Ein CURSOR ermöglicht es Ihnen, jeweils eine Zeile aus einer Ergebnismenge abzurufen, was ihn für dieses Szenario gut geeignet macht.

Um diese Schleifenfunktionalität zu erreichen, beschreiben die folgenden Schritte die Lösung in T-SQL:

  1. Erforderliche Variablen deklarieren:
    a. Deklarieren Sie eine Ganzzahlvariable @id, um den ID-Wert jeder Zeile zu speichern.
    b. Deklarieren Sie eine zweite Variable @name, um beispielsweise einen zusätzlichen Spaltenwert aus der Tabelle zu speichern.
    c. Deklarieren Sie eine CURSOR-Variable @getid, um den Cursor zu halten, der durch die Zeilen blättert.
  2. Erstellen Sie den CURSOR:
    Verwenden Sie die SET-Anweisung, um @getid einen Wert zuzuweisen, wobei der value ist eine SQL-Anweisung, die die gewünschten Spalten aus der Tabelle auswählt. In diesem Beispiel wählen wir sowohl ID als auch Name aus.
  3. Öffnen Sie den CURSOR:
    Verwenden Sie die OPEN-Anweisung, um den CURSOR zu öffnen und ihn für Abrufvorgänge verfügbar zu machen.
  4. Erste Zeile abrufen:
    Verwenden Sie die FETCH NEXT-Anweisung, um die abzurufen erste Zeile der Ergebnismenge in die deklarierten Variablen (@id und @name).
  5. Schleife durch die Zeilen:
    Verwenden Sie eine WHILE-Schleife, um so lange durch die verbleibenden Zeilen zu iterieren da @@FETCH_STATUS 0 ist, was darauf hinweist, dass noch weitere Zeilen verarbeitet werden müssen.
  6. Gespeichertes ausführen Prozedur:
    Führen Sie innerhalb der Schleife die gespeicherte Prozedur mit der EXEC-Anweisung aus und übergeben Sie dabei die entsprechenden Parameter aus der aktuellen Zeile. In diesem Beispiel übergeben wir @id, @otherVarName und @varForName.
  7. Nächste Zeile abrufen:
    Nachdem Sie die gespeicherte Prozedur ausgeführt haben, verwenden Sie FETCH NEXT erneut, um die nächste abzurufen Zeile in die deklarierten Variablen.
  8. Schließen Sie die und geben Sie sie frei CURSOR:
    Nach der Verarbeitung aller Zeilen verwenden Sie die Anweisungen CLOSE und DEALLOCATE, um die CURSOR-Ressourcen freizugeben.

Durch Befolgen dieser Schritte können Sie die Ergebnisse einer Abfrage effektiv in einer Schleife durchlaufen T-SQL und führen Sie eine gespeicherte Prozedur für jede Zeile aus, sodass Sie benutzerdefinierte Vorgänge basierend auf den abgerufenen Daten ausführen können.

Das obige ist der detaillierte Inhalt vonWie kann ich eine gespeicherte Prozedur für jede von einer T-SQL-Abfrage zurückgegebene Zeile ausführen?. 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