Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИПК_Занятия_ОПБД / Lectures_16-17.pptx
Скачиваний:
14
Добавлен:
15.04.2015
Размер:
2.98 Mб
Скачать

Работа со строками с помощью курсора

T-SQL поддерживает 3 команды для работы с курсорами:

FETCH, UPDATE, DELETE.

Команда FETCH извлекает указанную

строку из множества строк курсора.

Простейший синтаксис этой команды:

При этом возвращается строка в позиции

курсора (текущая строка).

41

 

Пример

2.

Команда FETCH может не только

возвращать строку, но и позволяет

сохранять значения из возвращенного столбца в переменных. Чтобы сохранить результаты выполнения команды FETCH в переменной - синтаксис:

список_переменных – перечень имен переменных, разделяемых запятыми.

43

Перед выполнением команды

FETCH необходимо объявить

переменные. Список переменных должен содержать переменную для каждого столбца, фигурирующего в операторе SELECT, определяющем курсор.

Тип данных переменной должен

совпадать или быть совместимым с

типом данных столбца.

44

Пример 3

В примерах 2, 3 оператор FETCH

использовался для возвращения текущей строки, которой была 1-я строка набора строк.

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

абсолютную позицию строки 46в курсоре.

Ключевые слова оператора FETCH:

FIRST и LAST - возвращают первую и последнюю строки курсора соответственно;

ABSOLUTE n - задает строку, отстоящую на n строк от начала (при n>0) или от конца (при n<0) множества строк курсора. Значение n можно задать числом (например, 3) или переменной (например, @theRow).

47

Пример

4.

Выборка

данных из курсора

(3-й строки) и задание переменных

Учтено, что

инструкция

ABSOLUTE

используется в

статических курсорах

(курсоры в примерах

48

1, 2 - динамические).

Модификация и удаление строк

через курсоры

Для выполнения изменений с помощью курсора - специальная форма предложения WHERE, поддерживающая модификацию через курсор:

Такое обновление данных называется

позиционным обновлением49.

T-SQL также поддерживает

позиционное удаление - синтаксис:

Аргумент курсор_или_переменная

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

установленная текущей в курсоре).

50

Соседние файлы в папке ИПК_Занятия_ОПБД