Zusammenfassung: In diesem Lernprogramm erfahren Sie, wie Sie mit dem SQL Server-Cursor eine Ergebnismenge zeilenweise verarbeiten. P. >
SQL funktioniert basierend auf einer Menge, z. B. SELECT
gibt eine Reihe von Zeilen zurück, die als Ergebnismenge bezeichnet wird. Manchmal möchten Sie jedoch möglicherweise einen Datensatz zeilenweise verarbeiten. Hier kommen Cursor ins Spiel.
Was ist ein Datenbankcursor?
Ein Datenbankcursor ist ein Objekt, das das Durchlaufen der Zeilen einer Ergebnismenge ermöglicht. Sie können einzelne von einer Abfrage zurückgegebene Zeilen verarbeiten.
Lebenszyklus des SQL Server-Cursors
Dies sind Schritte zur Verwendung eines Cursors:
Deklarieren Sie zunächst einen Cursor.
Code language: SQL (Structured Query Language) (sql)
Um einen Cursor zu deklarieren, geben Sie seinen Namen nach dem Schlüsselwort DECLARE
mit dem Datentyp CURSOR
an und geben a an SELECT
Anweisung, die die Ergebnismenge für den Cursor definiert.
Öffnen und füllen Sie den Cursor als Nächstes, indem Sie die SELECT
Anweisung:
Code language: SQL (Structured Query Language) (sql)
Rufen Sie dann eine Zeile aus dem Cursor in eine oder mehrere Variablen ab:
Code language: SQL (Structured Query Language) (sql)
SQL Server bietet die Funktion @@FETCHSTATUS
, die den Status der letzten Cursor-Anweisung FETCH
zurückgibt, die für den Cursor ausgeführt wird. Wenn @@FETCHSTATUS
0 zurückgibt, bedeutet dies, dass die Anweisung FETCH
erfolgreich war. Mit der Anweisung WHILE
können Sie alle Zeilen vom Cursor abrufen, wie im folgenden Code gezeigt:
Code language: SQL (Structured Query Language) (sql)
Schließen Sie danach den Cursor:
Code language: SQL (Structured Query Language) (sql)
Geben Sie zum Schluss die Zuordnung des Cursors auf:
Code language: SQL (Structured Query Language) (sql)
Beispiel für einen SQL Server-Cursor
Wir verwenden die Tabelle prodution.products
aus der Beispieldatenbank, um Ihnen die Verwendung eines Cursors zu zeigen:
Deklarieren Sie zunächst zwei Variablen, die den Produktnamen und den Listenpreis enthalten sollen, und Ein Cursor, der das Ergebnis einer Abfrage enthält, die den Produktnamen und den Listenpreis aus der Tabelle production.products
abruft:
Öffnen Sie als Nächstes den Cursor:
Code language: SQL (Structured Query Language) (sql)
Rufen Sie dann jede Zeile vom Cursor ab und drucken Sie den Produktnamen und den Listenpreis aus:
Schließen Sie anschließend den Cursor:
Code language: SQL (Structured Query Language) (sql)
Geben Sie den Cursor ab, um ihn freizugeben.
Die folgenden Codefragmente setzen alles zusammen:
Hier ist die Teilausgabe:
In der Praxis verwenden Sie den Cursor selten, um eine Ergebnismenge zeilenweise zu verarbeiten.
In diesem Lernprogramm haben Sie gelernt, wie Sie mit dem SQL Server-Cursor zeilenweise eine Ergebnismenge verarbeiten.