Većina proizvođača sistema za upravljanje bazama podataka podržava koncepciju privremenih tabela, kao i privremenih baza podataka (tempdb). Najkorišćeniji sistemi, kao što su Oracle ili MS SQL, podržavaju ovu koncepciju. Privremene tabele se najčešće upotrebljavaju za skladištenje rezultata komplikovanih upita, koji su potrebni za kasnije obrade. Kao što i sam naziv govori, radi se o tabelama koje postoje samo privremeno u bazi podataka. Ovde imamo dve vrste privremenih tabela, prve egzistiraju sve do momenta dok se korisnik koji ih je kreirao ne odjavi sa SQL servera (log-out), a druga vrsta privremenih tabela se ne uklanja po odjavljivanju korisnika. Naime, sve kreirane privremene tabele, i jedne i druge vrste, će se ukloniti po odjavljivanju samog SQL servera (shut-down).
Kao što smo rekli, sve privremene tabele se kreiraju u bazi podataka „tempdb“, a možete kreirati i cele privremene baze podataka. Na sledećem primeru, videćemo kako se kreira prva vrsta privremenih tabela – odnosno sintaksu kreiranja:
CREATE TABLE #Radnik (
Ime char(20),
Prezime char(20),
MBR int
);
Kao što vidite povisilica (#) na početku naziva tabele predstavlja oznaku SQL serveru da se radi o privremenoj tabeli. Ovako kreirana tabela dostupna je samo onom korisniku koji je i izvršio njeno kreiranje. Međutim, više korisnika, bez problema, može da kreira sopstvenu privremenu tabelu sa istim nazivom. U ovom slučaju, svaki od korisnika koristi svoju privremenu tabelu, gde može da dodaje ili briše slogove.
Drugi tip privremenih tabela je onaj kod kog ne dolazi do automatskog uklanjanja tabele nakon odjavljivanja korisnika. Sada ćemo kreirati jednu ovakvu tabelu:
CREATE TABLE tempdb..Radnik (
Ime char(20),
Prezime char(20),
MBR int
);
Probajte sada da u ovu tabelu ubacite neki slog. Recimo, neka to bude:
INSERT #Radnik VALUES (
"Pera",
"Peric",
8467
);
Odjavite se sa SQL servera (log-out), pa se ponovo ulogujte i „uđite“ u bazu podataka koju ste koristili pri kreiranju privremene tabele. Sada pokušajte da izlistate sadržaje privremene tabele sa:
SELECT *
FROM #Radnik ;
Dobićete rezultat kao na slici.
Pratite Krstaricu na www.krstarica.com