Прежде чем обратиться к данным курсора, его нужно после объявления
открыть.
Синтаксис оператора OPEN в обозначениях MS SQL Server:
OPEN { { [ GLOBAL ] cursor_name } | cursor_variable_name }
Пример:
DECLARE MyCursor1 CURSOR FOR (select * from Authors)
OPEN MyCursor1
После прекращения работы с курсором, его нужно закрыть. Курсор остается доступным для последующего использования в рамках процедуры или триггера, в котором он создан.
Синтаксис оператора CLOSE в обозначениях MS SQL Server:
CLOSE { { [ GLOBAL ] cursor_name } | cursor_variable_name }
Пример:
DECLARE MyCursor1 CURSOR FOR (select * from Authors)
OPEN MyCursor1
--здесь операторы работы с курсором
CLOSE MyCursor1
Если курсором больше не будут пользоваться, то его необходимо
уничтожить и освободить переменную.
Синтаксис оператора DEALLOCATE в обозначениях MS SQL Server:
DECLARE MyCursor1 CURSOR FOR (select * from Authors)
OPEN MyCursor1
--здесь операторы работы с курсором
CLOSE MyCursor1
DEALLOCATE MyCursor1
FETCH– оператор движения по записям курсора и извлечения данных текущей записи в указанные переменные.
Синтаксис оператора FETCH в обозначениях MS SQL Server:
FETCH
[ [ NEXT | PRIOR | FIRST | LAST
| ABSOLUTE { n | @nvar }
| RELATIVE { n | @nvar }
]
FROM
]
{ { [ GLOBAL ] cursor_name } | @cursor_variable_name }
[ INTO @variable_name [ ,...n ] ]
@@FETCH_STATUS– данная функция определяет признак конца или начала текущего курсора. Функция принимаетодно из следующих значений: 0 – находимся в пределах курсора, не в конце; 1 – попытка выйти за пределы первой записи вверх (в никуда); 2 – попытка выйти за пределы последней записи вниз (в никуда).
Пример:
DECLARE MyCursor1 SCROLL CURSOR FOR (select * from Authors)