• From my experience, a temporary table is the only way to go with that many records.

    A table variable or CTE would be way too slow.