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_table
pattern, 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.