Есть ли какой-нибудь совет использовать t больше, чем вовремя?
Конечно, если вы делаете это в хранимом процессе, просто сбросьте его в таблицу #temp.В конце сохраненного процесса таблица #temp исчезнет.
with t as (
select row_number() OVER (partition by ID ORDER BY id) as numb, *
from my_table
where id= 6
)
select * into #tmp from t
select top 2 from #tmp -- good
select top 2 from #tmp -- good also
Вне SP, просто убедитесь, что вы сбросили таблицу # перед тем, как попытаться создать ее снова, в противном случае следующая select ..into #name
будетошибка с #name already exists