Ваше CROSS APPLY
определение - select * from t1
- это не выбирает псевдоним, определенный выше. Вместо этого он ищет таблицу с именем t1
и выбирает из нее - это никоим образом не коррелирует с остальной частью запроса.
Если вы хотите APPLY
значения из текущей строки псевдонимастол, который вам нужно будет сделать
select * from @mytable t1
cross apply (select t1.* ) t2;
без FROM
.
Это ведет себя так, как вы ожидали.