Heim >Datenbank >MySQL-Tutorial >Wie iteriere ich T-SQL-Abfrageergebnisse mithilfe von Cursorn?

Wie iteriere ich T-SQL-Abfrageergebnisse mithilfe von Cursorn?

Barbara Streisand
Barbara StreisandOriginal
2024-12-30 14:47:14996Durchsuche

How to Iterate Through T-SQL Query Results Using Cursors?

Abfrageergebnisse in T-SQL durchlaufen

Um die Ergebnisse der Abfrage zu durchlaufen, SELECT @id=table.id FROM table, Sie können einen CURSOR in T-SQL verwenden. Hier ist ein Codeausschnitt, der zeigt, wie dies erreicht wird:

DECLARE @id INT;
DECLARE @name NVARCHAR(100);
DECLARE @getid CURSOR;

SET @getid = CURSOR FOR
SELECT
    table.id,
    table.name
FROM
    table;

OPEN @getid;
FETCH NEXT
FROM @getid
INTO @id, @name;
WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC stored_proc @varName = @id, @otherVarName = 'test', @varForName = @name;
    FETCH NEXT
    FROM @getid
    INTO @id, @name;
END;

CLOSE @getid;
DEALLOCATE @getid;

In diesem Skript:

  • Ein CURSOR namens @getid wird erstellt, um die Ergebnisse der Abfrage zu durchlaufen.
  • Die OPEN-Anweisung führt die Abfrage aus und weist die Ergebnisse dem Cursor zu.
  • Die Die FETCH NEXT-Anweisung ruft die erste Ergebniszeile ab und weist die Werte den Variablen @id und @name zu.
  • Die WHILE-Schleife ruft weiterhin Zeilen vom Cursor ab, bis keine weiteren Zeilen mehr zu verarbeiten sind.
  • Für jede Zeile führt die EXEC-Anweisung die gespeicherte Prozedur „stored_proc“ aus, wobei die Parameter @varName, @otherVarName und @varForName auf die entsprechenden Werte aus dem gesetzt sind Tabelle.
  • Nachdem alle Zeilen verarbeitet wurden, werden die Anweisungen CLOSE und DEALLOCATE geschlossen und der Cursor aus dem Speicher entfernt.

Das obige ist der detaillierte Inhalt vonWie iteriere ich T-SQL-Abfrageergebnisse mithilfe von Cursorn?. 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