Freigeben über


Cursortypen (Datenbankmodul)

ODBC und ADO definieren vier Cursortypen, die von MicrosoftSQL Server unterstützt werden. Die DECLARE CURSOR-Anweisung wurde erweitert; somit können Sie die vier Cursortypen für Transact-SQL-Cursor angeben. Diese Cursor sind im Hinblick auf ihre Fähigkeit, Änderungen am Resultset zu erkennen, sowie im Verbrauch von Ressourcen, wie z. B. Arbeitsspeicher und Speicherplatz in tempdb, verschieden. Ein Cursor kann Änderungen an Zeilen nur dann erkennen, wenn er versucht, diese Zeilen zum zweiten Mal 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 zu erkennen, hängt ebenfalls von der Transaktionsisolationsstufe ab.

Die vier von SQL Server unterstützten API-Servercursortypen sind:

  • statische Cursor

  • dynamische Cursor

  • Vorwärtscursor

  • keysetgesteuerte Cursor

Statische Cursor erkennen wenige oder keine Änderungen, beanspruchen beim Scrollen jedoch relativ wenige Ressourcen. Dynamische Cursor erkennen alle Änderungen, beanspruchen jedoch beim Scrollen mehr Ressourcen. Keysetgesteuerte Cursor liegen zwischen den beiden vorhergehenden Cursorn; sie erkennen zwar die meisten Änderungen, jedoch mit einer geringeren Beanspruchung von Ressourcen als dynamische Cursor.

Obwohl die Datenbank-API-Cursormodelle einen Vorwärtscursor als eigenständigen Cursortyp einstufen, ist dies unter SQL Server nicht der Fall. In SQL Server können die Optionen FORWARD_ONLY und SCROLL für statische, keysetgesteuerte und dynamische Cursor angewendet werden.