Опубликован: 02.02.2007 | Доступ: свободный | Студентов: 2374 / 243 | Оценка: 4.10 / 3.86 | Длительность: 26:44:00
Урок 26:

Курсоры в Transact-SQL

Выберите строки с записью ее в переменные

  1. Нажмите кнопку Load Script (Загрузить сценарий) в панели управления анализатора запросов Query Analyzer.Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).
  2. Выделите сценарий с именем FetchVariables и нажмите кнопку Open (Открыть). Query Analyzer загрузит сценарий в окно Query (Запрос).

  3. Нажмите кнопку Execute Query (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer.Query Analyzer выполнит запрос.

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

Эти ключевые слова дают вам возможность задавать абсолютную позицию во множестве курсора. Ключевые слова FIRST и LAST возвращают первую и последнюю строки соответственно, в то время как ABSOLUTE n задает строку, отстоящую на n строк от начала (если n положительно) или от конца (если n отрицательно) множества записей курсора. Значение n может быть выражено в виде константы (3) или в виде переменной (@theRow).

Выберите строки по их абсолютной позиции

  1. Нажмите кнопку Load Script (Загрузить сценарий)в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

  2. Выделите сценарий с именем FetchAbsolute и нажмите кнопку Open (Открыть). Query Analyzer загрузит сценарий в окно Query (Запрос).

  3. Нажмите кнопку Execute Query (Выполнить запрос)в панели инструментов анализатора запросов Query Analyzer. Query Analyzer выполнит запрос.

Помимо ключевых слов, дающих возможность извлекать строки по их абсолютной позиции, оператор FETCH предусматривает три ключевых слова, позволяющих извлекать строки по их позиции относительно текущей строки. Оператор FETCH NEXT возвращает следующую строку, оператор FETCH PRIOR возвращает предыдущую строку, а оператор FETCH RELATIVE n возвращает строку, отстоящую на n строк от текущей. Подобно оператору FETCH ABSOLUTE n, оператор FETCH RELATIVE n может задавать строки, предшествующие текущей, если n отрицательно, и строки, следующие за текущей, если n положительно.

Инна Грушецкая
Инна Грушецкая
Сергей Чесноков
Сергей Чесноков