Это запускает поиск сам по себе
(select * from #T1 union select * from #T2)
Это не так (добавлена первая строка):
select * into #T3 from (select * from #T1 union select * from #T2)
Выдает синтаксическую ошибку.
Какой правильный синтаксис?
Вам не нужен подзапрос.Просто добавьте into после первого select:
into
select
select * into #T3 from #T1 union select * from #T2;
Обратите внимание, что вы должны использовать union all, если вы действительно не хотите нести накладные расходы на удаление дубликатов.
union all
Это неверный синтаксис, вам нужно alias при использовании набора результатов из производной таблицы:
alias
select * into #t3 from (select col1, col2, . . . from #t1 union all select col1, col2, . . from #t2 ) t; --- alias missing