Tabelele temporare SQL Server stochează datele temporar. Puteți efectua aceleași operațiuni, cum ar fi SELECT, INSERT, DELETE și UPDATE, pe o tabelă temporară ca și pe un tabel SQL obișnuit.
Tabelele Temp trăiesc în baza de date tempdb și sunt vizibile numai pe durata conexiunii. Când încheiați conexiunea, SQL Server șterge tabelul temporar. De asemenea, îl puteți șterge în mod explicit oricând.
Tipuri de tabele temporale SQL Server
Există două tipuri de tabele temporare SQL Server: locale și globale.
Tabel Temp local
Un tabel temporar local este vizibil numai pentru conexiunea care l-a creat. Când acea conexiune se termină sau utilizatorul se deconectează de la SQL Server de exemplu, un tabel local temp este abandonat automat.
Pentru a crea un tabel temporar local, utilizați un singur simbol hash (#) la începutul numelui tabelului cu instrucțiunea CREATE TABLE. Aici este sintaxa.
CREAMASA#TempTable (
Coloana 1 INT,
Coloana 2 VARCHAR(50)
);
De exemplu, următorul cod creează un tabel temporar numit TempCustomer cu un câmp de nume și e-mail.
CREAMASA#TempCustomer (
ID int NU CHEIE PRIMARĂ NULL
Nume complet VARCHAR(50),
E-mail VARCHAR(50)
);
Tabel Temp Global
Un tabel global temp este un tabel temporar vizibil tuturor conexiunilor și utilizatorilor. SQL Server îl va renunța când toate conexiunile și utilizatorii care fac referire la tabel s-au deconectat.
Pentru a crea un tabel global temp, prefixați numele tabelului cu hashuri duble (##) și utilizați instrucțiunea CREATE TABLE.
CREAMASA##TempTable (
Coloana 1 INT,
Coloana 2 VARCHAR(50)
);
Următorul cod creează un tabel global temp numit TempCustomer.
CREAMASA##TempCustomer (
ID int NU CHEIE PRIMARĂ NULL
Nume complet VARCHAR(50),
E-mail VARCHAR(50)
);
Acest cod este similar cu exemplul pentru tabelul temp local, doar cu două simboluri hash în loc de unul. Acum puteți folosi comenzi SQL standard pentru a adăuga sau manipula datele din tabelul temp.
Cum să aruncați un tabel Temp
Instanța SQL Server elimină automat un tabel temporar când toți utilizatorii care fac referire la acesta s-au deconectat. Ca cea mai bună practică, ar trebui să aruncați întotdeauna în mod explicit tabelele temporare pentru a elibera memoria tempdb.
Pentru a elimina un tabel temporar, utilizați instrucțiunea DROP TABLE IF EXISTS urmată de numele tabelului temporar.
Iată cum să aruncați tabelul #TempCustomer:
CĂDERE BRUSCAMASADACĂEXISTĂ#TempCustomer
Utilizați același cod, dar schimbați numele tabelului pentru a elimina un tabel global temp.
CĂDERE BRUSCAMASADACĂEXISTĂ##TempCustomer
Utilizări tipice ale tabelelor SQL Temp
Tabelele temporare sunt utile atunci când trebuie să stocați rezultate intermediare ale interogărilor complexe pe care trebuie să le procesați în continuare. De exemplu, atunci când creați rapoarte, poate fi necesar să creați tabele temporare pentru a stoca rezultatele interogărilor din mai multe baze de date. Puteți genera apoi raportul final rulând o interogare pe tabelele temporare.
Un alt scenariu în care tabelele temporare sunt utile este atunci când aveți nevoie de rezultatele interogării dintr-un tabel pentru a rula o altă interogare. Puteți stoca rezultatele într-un tabel temporar și apoi faceți referire la el în noua interogare. În esență, utilizați tabelul temporar ca tabel de lucru sau tampon pentru a păstra datele de care aveți nevoie pentru a efectua o anumită sarcină.
Utilizarea tabelelor Temp în SQL Server
Puteți utiliza tabele temporare SQL Server pentru a stoca și procesa datele temporar. Există două tipuri de tabele temporare, locale și globale. Un tabel temp local este vizibil pentru conexiunea în care a fost creat, în timp ce un tabel temp global este vizibil în toate conexiunile.
Tabelele temporare sunt distruse automat atunci când vă deconectați de la instanța serverului. Cu toate acestea, pentru a economisi memoria, ar trebui să le renunțați întotdeauna după utilizare.