Sì. È necessario anteporre il nome della tabella con "#" (hash) per creare tabelle temporanee.
Se NON hai bisogno della tabella in seguito, vai avanti e creala. Le tabelle temporanee sono molto simili alle normali tabelle. Tuttavia, viene creato in tempdb. Inoltre, è accessibile solo tramite la sessione corrente, ad es. Per EG: se un altro utente tenta di accedere alla tabella temporanea creata da te, non sarà in grado di farlo.
"##" (il doppio hash crea una tabella temporanea "globale" a cui possono accedere anche altre sessioni.
Fare riferimento al collegamento sottostante per le basi delle tabelle temporanee:
http://www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005
Se il contenuto della tabella è inferiore a 5000 righe e NON contiene tipi di dati come nvarchar (MAX), varbinary (MAX), prendere in considerazione l'utilizzo di variabili di tabella.
Sono le più veloci in quanto sono come tutte le altre variabili memorizzate nella RAM. Sono archiviati anche in tempdb, non nella RAM .
DECLARE @ItemBack1 TABLE
(
column1 int,
column2 int,
someInt int,
someVarChar nvarchar(50)
);
INSERT INTO @ItemBack1
SELECT column1,
column2,
someInt,
someVarChar
FROM table2
WHERE table2.ID = 7;
Ulteriori informazioni sulle variabili di tabella:
http://odetocode.com/articles/365.aspx