I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

Le tabelle temporanee di SQL Server archiviano i dati temporaneamente. Puoi eseguire le stesse operazioni, come SELECT, INSERT, DELETE e UPDATE, su una tabella temporanea come faresti con una normale tabella SQL.

Le tabelle temporanee risiedono nel database tempdb e sono visibili solo durante la durata della connessione. Quando si termina la connessione, SQL Server elimina la tabella temporanea. Puoi anche eliminarlo esplicitamente in qualsiasi momento.

Tipi di tabelle temporanee di SQL Server

Esistono due tipi di tabelle temporanee di SQL Server: locale e globale.

Tabella temporanea locale

Una tabella temporanea locale è visibile solo alla connessione che l'ha creata. Quando la connessione termina o l'utente si disconnette dal file server SQL esempio, una tabella temporanea locale viene eliminata automaticamente.

instagram viewer

Per creare una tabella temporanea locale, utilizzare un singolo cancelletto (#) all'inizio del nome della tabella con l'istruzione CREATE TABLE. Ecco la sintassi.

CREARETAVOLO#TempTable (
Colonna1 INT,
Colonna2 VARCHAR(50)
);

Ad esempio, il codice seguente crea una tabella temporanea denominata TempCustomer con un campo nome e indirizzo email.

CREARETAVOLO#TempCustomer (
ID int NOT NULL CHIAVE PRIMARIA
NomeCompleto VARCHAR(50),
E-mail VARCHAR(50)
);

Tabella temporanea globale

Una tabella temporanea globale è una tabella temporanea visibile a tutte le connessioni e utenti. SQL Server lo eliminerà quando tutte le connessioni e gli utenti che fanno riferimento alla tabella si saranno disconnessi.

Per creare una tabella temporanea globale, anteporre al nome della tabella doppi hash (##) e utilizzare l'istruzione CREATE TABLE.

CREARETAVOLO##TempTable (
Colonna1 INT,
Colonna2 VARCHAR(50)
);

Il codice seguente crea una tabella temporanea globale denominata TempCustomer.

CREARETAVOLO##Cliente temporaneo (
ID int NOT NULL CHIAVE PRIMARIA
NomeCompleto VARCHAR(50),
E-mail VARCHAR(50)
);

Questo codice è simile all'esempio per la tabella temporanea locale, solo con due simboli hash invece di uno. Ora puoi usare comandi SQL standard per aggiungere o manipolare i dati nella tabella temporanea.

Come eliminare una tabella temporanea

L'istanza di SQL Server elimina automaticamente una tabella temporanea quando tutti gli utenti che vi fanno riferimento si sono disconnessi. Come best practice, dovresti sempre eliminare in modo esplicito le tabelle temporanee per liberare la memoria tempdb.

Per eliminare una tabella temporanea, utilizzare l'istruzione DROP TABLE IF EXISTS seguita dal nome della tabella temporanea.

Ecco come eliminare la tabella #TempCustomer:

GOCCIOLARETAVOLOSEESISTE#TempCustomer

Usa lo stesso codice ma scambia il nome della tabella per eliminare una tabella temporanea globale.

GOCCIOLARETAVOLOSEESISTE##Cliente temporaneo

Usi tipici delle tabelle temporanee SQL

Le tabelle temporanee sono utili quando è necessario archiviare i risultati intermedi di query complesse che è necessario elaborare ulteriormente. Ad esempio, durante la creazione di report, potrebbe essere necessario creare tabelle temporanee per archiviare i risultati delle query da diversi database. È quindi possibile generare il report finale eseguendo una query sulle tabelle temporanee.

Un altro scenario in cui le tabelle temporanee sono utili è quando sono necessari i risultati della query da una tabella per eseguire un'altra query. Puoi archiviare i risultati in una tabella temporanea e quindi farvi riferimento nella nuova query. In sostanza, stai utilizzando la tabella temporanea come tabella di lavoro o buffer per contenere i dati necessari per eseguire un'attività specifica.

Utilizzo delle tabelle temporanee in SQL Server

È possibile utilizzare le tabelle temporanee di SQL Server per archiviare ed elaborare i dati temporaneamente. Esistono due tipi di tabelle temporanee, locali e globali. Una tabella temporanea locale è visibile alla connessione in cui è stata creata, mentre una tabella temporanea globale è visibile in tutte le connessioni.

Le tabelle temporanee vengono automaticamente distrutte quando ti disconnetti dall'istanza del server. Tuttavia, per risparmiare memoria, dovresti sempre rilasciarli dopo l'uso.