Ну, если бы это было так, то у mssql были бы проблемы, так как любой большой запрос может использовать tempdb для хранения копии строк. Это часто можно увидеть в планах запросов как катушку таблицы или использовать оператор HASH JOIN, если ему не хватает памяти для своих сегментов.
Вы можете посмотреть на использование табличных переменных, которые mssql попытается сохранить в памяти и переместить в базу данных tempdb, если они увеличатся до больших.
DECLARE @foo TABLE (x int, y int, z int)
INSERT INTO @foo(x, y, z) SELECT x, y, z FROM YourTable
Конечно, вы должны оценить, требуется ли сначала временная таблица и копия. Хотя, если запрос достаточно сложный, чтобы использование временной таблицы было гораздо более читабельным, он также может быть достаточно сложным, чтобы временная таблица была полезной.