Usare tabelle temporanee
È possibile usare Transact-SQL per creare tabelle temporanee. Le tabelle temporanee sono disponibili in due tipi:
- Tabelle temporanee locali
- Tabelle temporanee globali
Creare tabelle temporanee locali
Usare le tabelle temporanee locali per creare tabelle con ambito per la sessione corrente. Ciò significa che la tabella temporanea è visibile solo all'utente e, quando la sessione è finita, la tabella non esiste più. Più utenti possono creare tabelle con lo stesso nome e non avranno alcun effetto l'uno sull'altro.
Per creare una tabella temporanea locale, si usa lo stesso approccio usato durante la creazione di una tabella normale. Tuttavia, è necessario aggiungere # prima del nome della tabella per indicare che si tratta di una tabella temporanea locale:
CREATE TABLE #Products (
ProductID INT PRIMARY KEY,
ProductName varchar,
...
);
Creare tabelle temporanee globali
È anche possibile creare tabelle temporanee globali. Una tabella temporanea globale è accessibile in tutte le sessioni. Ciò significa che una tabella temporanea globale deve avere un nome univoco, a differenza di una tabella temporanea locale. Le tabelle temporanee globali vengono eliminate automaticamente al termine della sessione creata e tutte le attività che lo fanno riferimento in tutte le sessioni sono terminate. Si crea una tabella temporanea globale nello stesso modo in cui si creerebbe una tabella temporanea locale, ad eccezione del fatto che si userebbe ## anziché il singolo # per specificarlo come una tabella temporanea globale:
CREATE TABLE ##Products (
ProductID INT PRIMARY KEY,
ProductName varchar,
...
);
Inserire e leggere dati da una tabella temporanea
È possibile inserire dati nelle tabelle temporanee (sia locali che globali) usando lo stesso approccio delle tabelle regolari, usando INSERT. È sufficiente assicurarsi di aggiungere # o ## al nome della tabella. Per esempio:
INSERT #Products (ProductID, ProductName, ProductDescription)
VALUES (1, 'The temporary time leap', 'A novel about temporary time leaping.');
È anche possibile recuperare i risultati da una tabella temporanea usando SELECT. Ad esempio, per recuperare tutte le righe e le colonne per la tabella temporanea #Products e ordinare i risultati in base al nome del prodotto, eseguire:
SELECT *
FROM #Products
ORDER BY ProductName;