Erik Darling explains the pre-conditions for parallel insertion into temporary tables:
If you have a workload that uses #temp tables to stage intermediate results, and you probably do because you’re smart, it might be worth taking advantage of being able to insert into the #temp table in parallel.
Remember that you can’t insert into @table variables in parallel, unless you’re extra sneaky. Don’t start.
If your code is already using the
SELECT ... INTO #some_tablepattern, you’re probably already getting parallel inserts. But if you’re following theINSERT ... SELECT ...pattern, you’re probably not, and, well, that could be holding you back.
There are enough pre-conditions that this becomes a decision rather than an automatic. Especially if you’re dealing with temp tables with indexes and want to take advantage of temp table reuse, which I believe precludes changing the structure of the table (including adding indexes) after creation.