Как назначить переменную внутри CTE - PullRequest
0 голосов
/ 30 мая 2020

Если я запустил сценарий ниже, оператор печати напечатает 10

declare @i int = 0

select @i = @i + 2
from sys.tables

print @i

Но если я хочу использовать ту же концепцию внутри CTE, это не сработает.

Я пытаюсь запустить ниже T- SQL, но я получаю ошибку

declare @i int = 0

;with ct (x) as
(
    select @i = @i + 2
    from sys.tables
)
select * 
from ct

print @i

Я получаю эту ошибку

Msg 102, Level 15, State 1, Line 4
Неправильный синтаксис рядом с '='.

Я намерен добавить переменную @i без while l oop.

...