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

Применимо к:SQL ServerAzure SQL DatabaseAzure Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

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

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

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

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

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

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

См. также

Использование курсоров (ODBC)