Tabele tymczasowe

W poście „Podstawowe informacje o SQL” tworzyliśmy tzw. tabele tymczasowe. Czym one tak właściwie są i gdzie są przechowywane?

Tabele tymczasowe stanowią bardzo przydatną funkcjonalność w SQL Serverze. Istnieją one w trakcie trwania sesji połączenia z SQL Serveren. Każdorazowo otwarte nowe okno w SQL Server Management Studio (SSMS) powoduje nawiązanie sesji z SQL Serverem. Utworzone tabele lądują w systemowej bazie danych tempdb.
Do podstawowych cech tabel tymczasowych można zaliczyć:

  • zbudowana jak zwykła tabela
  • widoczne w bazie systemowej tempdb
  • usunięcie tabeli jedynie z poziomu połączenia, w którym została utworzona
  • brak możliwości zdefiniowania kluczy obcych

Można rozróżnić:

  • lokalne tabele tymczasowe (prefiks #)
  • globalne tabele tymczasowe (prefiks ##)

Podstawowa różnica pomiędzy tabelami globalnymi a lokalnymi to fakt, że tabele lokalne widoczne są tylko w konkretnym połączeniu, w którym zostały utworzone. Do tabel globalnych natomiast mogą mieć dostęp wszyscy użytkownicy dopóki twórca tabeli jest połączony.

Kilka ćwiczeń na lepsze zrozumienie idei tabel tymczasowych. Wyświetlmy sobie listę wszystkich tabel użytkownika w bazie tempdb.

Teraz utwórzmy tabelę:

I jeszcze raz wyświetlmy listę tabel użytkownika.

Widzimy utworzenie tabeli tymczasowej o nazwie #TabelaTymczasowa. Ponadto możemy ją zobaczyć w Object Explorerze po kliknięciu Refresh na Temporary Tables:

Kilka słów na temat ostatniego kodu. Słowo use umożliwia nam wykonywanie zapytań do konkretnej bazy danych. Widok sysobjects reprezentuje informacje odnośnie każdego utworzonego w bazie danych. Jeden rekord odwzorowuje jeden taki obiekt. Atrybut „xtype” w widoku sysobjects decyduje o konkretnym typie obiektu. Przykładowo V to widok (więcej informacji).
Na sam koniec zrestartujmy SQL Server i ponownie sprawdźmy czy utworzona przez nas tabela istnieje. W celu zrestartowania SQL Servera klikamy PPM na instancji serwera i wybieramy restart.

Po restarcie i odświeżeniu Temporary Tables w bazie tempdb widzimy, że nie ma tam tabeli #TymczasowaTabela.
Tabele tymczasowe są niezwykle przydatne, o czym przekonamy się wkrótce.

Więcej informacji o tabelach tymczasowych można odnaleźć na TechNecie Microsoftu:
http://technet.microsoft.com/pl-pl/library/tabele-tymczasowe-i-zmienne-tablicowe-fakty-i-mity.aspx

Źródła:

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *