Share via


Cursortypen

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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 zu erkennen, und in den Ressourcen, 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 erstellt, wenn der Cursor geöffnet wird. Sie zeigen das Resultset immer so an, wie es beim Öffnen des Cursors war. Änderungen an den Daten werden nicht wiedergegeben. SQL Server : Statische Cursor sind immer schreibgeschützt. Da ein statischer Servercursor als Arbeitstabelle in tempdb erstellt wird, darf die Größe des Cursorresultsets die maximale Zeilengröße, die von SQL Server zulässig ist, 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)