Манипулирование строками с помощью курсора
Курсоры сами по себе не вызвали бы никакого интереса, если бы вы не могли осуществлять с их помощью определенные действия. Transact-SQL поддерживает три различные команды для работы с курсорами: FETCH, UPDATE и DELETE.
Команда FETCH извлекает указанную строку из множества строк курсора. В своем простейшем варианте команда FETCH имеет следующий синтаксис:
FETCH курсор_или_переменная
В этом формате записи возвращается строка в позиции курсора (текущая строка).
Используйте простую команду FETCH
- Нажмите кнопку New Query (Новый запрос) в панели инструментов анализатора запросов Query Analyzer.Query Analyzer откроет новое окно Query (Запрос).
- Нажмите кнопку Load Script (Загрузить сценарий) в панели инструментов анализатора запросов Query Analyzer.Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).
- Перейдите к папке SQL 2000 Step by Step в корневой директории, выделите сценарий с именем SimpleCursor и нажмите кнопку Open (Открыть).
- Query Analyzer загрузит сценарий в окно Query (Запрос).
- Нажмите кнопку Execute Query (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer.Query Analyzer выполнит запрос.
Совет. Возможно, вы обратили внимание, что этот сценарий выполняется дольше, чем соответствующий оператор SELECT. Дело в том, что создание и открытие курсора требует дополнительного времени. Никогда не используйте курсор, если для выполнения задачи достаточно оператора SELECT.
Команда FETCH может не только возвращать строку непосредственно, но и позволяет сохранять значения из возвращенного столбца в переменных. Чтобы сохранить результаты выполнения команды FETCH в переменной, используйте следующий синтаксис:
FETCH курсор_или_переменная INTO список_переменных
Список_переменных есть перечень разделяемых запятыми идентификаторов переменных. Перед выполнением команды FETCH вы должны объявить переменные. Список_переменных должен содержать переменную для каждого столбца, фигурирующего в операторе SELECT, который определяет курсор. Тип данных переменной должен либо совпадать, либо быть совместимым с типом данных столбца.