In SQL Server ci sono due modi per creare una tabella temporanea:

  1. Appoggiarsi al tempdb:

    CREATE TABLE #TempTable(Field1 int, Field2 varchar(10))
    INSERT INTO #TempTable(Field1, Field2) VALUES (42, 'Alberto')
    SELECT * FROM #TempTable
    
  2. Utilizzare una variabile di tipo TABLE:

    DECLARE @TempTable TABLE (Field1 int, Field2 varchar(10))
    INSERT INTO @TempTable(Field1, Field2) VALUES(42, 'Alberto')
    SELECT * FROM @TempTable
    

Sebbene i due modi si assomiglino molto, in realtà alcune differenze ci sono, e sono ben riassunte in questo post.