Технология Клиент-Сервер 2003'4 |
|||||||
|
Этот документ содержит описание нескольких изменений Transact-SQL в Microsoft SQL Server "Yukon" Beta 1. Новые возможности увеличивают мощь языка, производительность запросов и возможности обработки ошибок. В основном здесь пойдет речь о концептуально новых реляционных улучшениях; будут продемонстрированы примеры применения новых возможностей. Разумеется, здесь рассматриваются не все изменения Transact-SQL.
Общие табличные выражения (common table expression, CTE) – это временно именованные наборы данных, на которые можно ссылаться с помощью определяющих выражений. В самой простой форме CTE можно рассматривать как улучшенную версию производных таблиц (derived tables), которая больше похожа на несохраняющийся тип представлений (view). На СТЕ можно ссылаться в запросе из оператора FROM так же, как на производные таблицы и представления. CTE определяется один раз, и может многократно использоваться в запросах. В определении CTE можно ссылаться на переменные, определенные в том же скрипте. Можно использовать CTE в выражениях INSERT, UPDATE, DELETE и CREATE VIEW примерно так же, как и представления. Истинная сила CTE – в рекурсивности, то есть в том, что CTE может содержать ссылки на себя. Здесь сперва будет приведен простой пример CTE, а затем – пример рекурсивного использования.
Производные таблицы используются, если нужно использовать результаты запроса в качестве таблицы, но не хочется создавать постоянно хранящееся в БД представление. Однако у них есть ограничения, которых лишены CTE: один раз определенную производную таблицу нельзя использовать многократно. Для этого нужно определять несколько производных таблиц в одном запросе. Теперь же можно один раз определить CTE и использовать в запросе несколько раз, не сохраняя в БД.
<...>
Copyright © 1994-2016 ООО "К-Пресс"