SQL Server-CURSOR

Zusammenfassung: In diesem Lernprogramm erfahren Sie, wie Sie mit dem SQL Server-Cursor eine Ergebnismenge zeilenweise verarbeiten.

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.