Я постараюсь не копировать / вставлять MSDN
Это не имеет значения.
CTE не зависит от выполнения запроса: это только языковая конструкция. Думайте об этом как об аккуратной производной таблице или подзапросе.
Это означает, что за исключением рекурсивных CTE (см. Далее), все CTE могут быть закодированы как встроенные. Если вы используете код CTE один раз, он предназначен для удобочитаемости . Если вы используете CTE дважды или более, это оправданно: вы не хотите ошибаться и производная таблица отличается в каждом случае.
Если CTE используется дважды или более, то этот код будет выполняться дважды или более. Он не будет выполнен один раз и кэширован в базе данных tempdb.
Резюме: может или не может, как если бы код был встроенным.
Примечание: рекурсивный CTE - это просто производная таблица внутри производной таблицы внутри производной таблицы внутри производной таблицы внутри der ... так же применимо.
Вы можете увидеть это в статье Тони Роджерсона . Использование tempdb произойдет в любом случае, если оно будет встроено. Он также отмечает, что использование временной таблицы может быть лучше из-за расширения «макро», которое я объяснил выше
К вашему сведению: то же самое относится и к представлениям. Просто макросы.