Предложение тор задает первые найденные п строк результата запроса. Это предложение всегда должно быть использовано с предложением order by, потому что результат такого запроса является всегда хорошо определенным и может быть использован в табличных выражениях. Табличное выражение задает экземпляр сгруппированного табличного результата. Запрос с тор, но без предложения order by является недетерминированным. Это означает, что многократные выполнения запроса к одним и тем же данным не всегда будет отображать один и тот же результирующий набор.
В примере 24.18 показано использование этого предложения.
Как вы можете видеть, предложение тор является частью списка в операторе select и записывается в начале списка имен всех столбцов.
Предложение тор является нестандартной реализацией Transact-SQL, используемой для отображения рангов первых п строк таблицы. Запрос, эквивалентный запросу из примера 24.18, который использует конструкцию окна и функцию rank, показан в примере 24.19.
Предложение тор также может быть использовано с дополнительной опцией percent. В этом случае отыскиваются первые п процентов строк из результирующего набора. Дополнительная опция with ties указывает, что дополнительные строки будут выбраны из результата запроса, если они имеют то же самое значение в столбце (столбцах) предложения order by, что и последняя строка, которая принадлежит отображаемому набору. В примере 24.20 показано использование опций percent и with ties.
Результат примера 24.20 содержит пять строк, потому что существуют три проекта с пятью служащими.
Начиная с SQL Server 2005, вы можете использовать предложение тор с операторами update, delete и insert. В примере 24.21 показано использование этого предложения с оператором update.
В примере 24.22 показано использование предложения тор вместе с оператором delete.
В примере 24.22 предложение тор используется вначале в подзапросе для поиска проектов с наименьшими значениями бюджетов, а затем в операторе delete для удаления этих проектов.