Поделиться через


Типы курсоров

ODBC определяет четыре типа курсоров, поддерживаемых Microsoft SQL Server и драйвером ODBC для собственного клиента SQL Server. Эти курсоры различаются по способности обнаруживать изменения в результирующем наборе и по потребляемым ими ресурсам, например памяти и пространству в базе данных tempdb. Курсор может обнаружить изменения в строках только при попытках повторной выборки этих данных; не существует способа для источника данных известить курсор об изменениях в текущих выбранных строках. На способность курсора обнаруживать изменения, которые не были внесены через курсор, также влияет уровень изоляции транзакций.

Существует четыре типа курсоров ODBC, поддерживаемых SQL Server:

  • Последовательные курсоры не поддерживают прокрутку; они поддерживают только последовательную выборку строк от начала курсора до его конца.

  • Статические курсоры встраиваются в tempdb при открытии курсора. Они всегда отображают результирующий набор точно в том виде, в котором он был при открытии курсора. Они никогда не отражают изменения в данных. Статические курсоры SQL Server всегда доступны только для чтения. Так как статический серверный курсор построен как рабочая таблица базы данных tempdb, то размер строк результирующего набора не может превышать максимальный размер строк, разрешенного в SQL Server.

  • Управляемые набором ключей курсоры имеют членство и порядок строк в результирующем наборе, установленные при открытии курсора. Изменения в неключевых столбцах видимы через курсор.

  • Динамические курсоры - это противоположность статических курсоров. Динамические курсоры отражают все изменения строк в результирующем наборе. Значения типа данных, порядок и членство строк в результирующем наборе могут меняться для каждой выборки.

См. также

Основные понятия