Рекурсивные запросы
Существуют несколько случаев, когда "рекурсивные запросы" очень полезны. Новая функциональность в SQL Server 2005 позволяет достаточно легко создавать рекурсивные запросы.
Рекурсивный запрос - это запрос к таблице с самообъединением. Два самых распространенных примера таких таблиц - это таблицы со списком сотрудников и менеджеров, и таблицы с ведомостями материалов, из которых изготовлены товары. Примером таблицы с самообъединением является таблица Employee в базе данных AdventureWorks.
Всегда было несложно написать запрос к таблице с самообъединением для выборки прямых отношений, например, для определения сотрудников, которые напрямую подчиняются менеджеру. Однако намного сложнее ответить на вопрос: "Сколько сотрудников работает в отделе менеджера?".
Для решения этой проблемы в реляционную базу данных SQL Server 2005 добавлена новая функциональность, которая называется "Рекурсивные общие табличные выражения" (Recursive common table expressions). Для дополнительной информации смотрите "WITH <common_table_expression>" в SQL Server Books Online.