Freigeben über


Cursortypen

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Analytics Platform System (PDW)

ODBC definiert vier Cursortypen, die von Microsoft SQL Server und dem SQL Server Native Client ODBC-Treiber unterstützt werden. Diese Cursor unterscheiden sich in ihrer Fähigkeit, Änderungen am Resultset und in den ressourcen zu erkennen, die sie verbrauchen, z. B. Arbeitsspeicher und Speicherplatz in tempdb. Ein Cursor kann Änderungen an Zeilen nur dann erkennen, wenn er versucht, diese Zeilen erneut abzurufen. Es gibt keine Möglichkeit, wie die Datenquelle den Cursor über Änderungen an den derzeit abgerufenen Zeilen informieren könnte. Die Fähigkeit eines Cursors, Änderungen, die nicht durch den Cursor vorgenommen wurden, zu erkennen, hängt außerdem von der Transaktionsisolationsstufe ab.

Dies sind die vier ODBC-Cursortypen, die von SQL Server unterstützt werden:

  • Vorwärtscursor unterstützen keine Bildläufe, sondern ausschließlich das serielle Abrufen von Zeilen vom Anfang bis zum Ende des Cursors.

  • Statische Cursor werden in tempdb integriert, wenn der Cursor geöffnet wird. Sie zeigen das Resultset immer so an, als der Cursor geöffnet wurde. Änderungen an den Daten werden nicht wiedergegeben. Statische SQL Server-Cursor sind immer schreibgeschützt. Da ein statischer Servercursor als Arbeitstabelle in tempdb erstellt wird, kann die Größe des Cursorergebnissatzes die von SQL Server zulässige maximale Zeilengröße nicht überschreiten.

  • In einem keysetgesteuerten Cursor werden Mitgliedschaft und Reihenfolge der Zeilen beim Öffnen des Cursors festgelegt. Änderungen an Nichtschlüsselspalten sind durch den Cursor sichtbar.

  • Dynamische Cursor sind das Gegenteil von statischen Cursorn. Dynamische Cursor spiegeln alle Änderungen an den Zeilen in den Resultsets wider. Die Datenwerte, Reihenfolge und Mitgliedschaft der Zeilen im Resultset können sich bei jedem Abrufvorgang ändern.

Weitere Informationen

Verwenden von Cursorn (ODBC)