Microsoft SQL Server
Zastosowanie tabeli TEMP
Szukaj…
Uwagi
Tabele tymczasowe są naprawdę bardzo pomocne.
Tabela może być tworzona w czasie wykonywania i może wykonywać wszystkie operacje, które są wykonywane w normalnej tabeli.
Te tabele są tworzone w bazie danych tempdb.
Używane kiedy?
Musimy wykonać skomplikowaną operację łączenia.
Wykonujemy dużą liczbę manipulacji wierszami w procedurach przechowywanych.
Może zastąpić użycie kursora.
W ten sposób zwiększa wydajność.
Lokalna tabela temperatur
Będzie dostępny, dopóki bieżące połączenie nie zostanie przerwane dla użytkownika.
Automatycznie usuwany, gdy użytkownik się rozłączy.
Nazwa powinna zaczynać się od # (#temp)
CREATE TABLE #LocalTempTable( StudentID int, StudentName varchar(50), StudentAddress varchar(150))
insert into #LocalTempTable values ( 1, 'Ram','India');
select * from #LocalTempTable
Po wykonaniu wszystkich tych instrukcji, jeśli zamkniemy okno zapytania i otworzymy je ponownie, spróbuj wstawić i wybrać, aby wyświetlić komunikat o błędzie
“Invalid object name #LocalTempTable”
Globalna tabela temperatur
Rozpocznie się od ## (## temp).
Zostaną usunięte tylko wtedy, gdy użytkownik rozłączy wszystkie połączenia.
Zachowuje się jak stały stół.
CREATE TABLE ##NewGlobalTempTable( StudentID int, StudentName varchar(50), StudentAddress varchar(150)) Insert Into ##NewGlobalTempTable values ( 1,'Ram','India'); Select * from ##NewGlobalTempTable
Uwaga: są one widoczne dla wszystkich użytkowników bazy danych, niezależnie od poziomu uprawnień.
Upuszczanie tabel temp
Tabele temp muszą mieć unikalne identyfikatory (w sesji, dla lokalnych tabel temp lub na serwerze, dla globalnych tabel temp). Próba utworzenia tabeli przy użyciu nazwy, która już istnieje, zwróci następujący błąd:
There is already an object named '#tempTable' in the database.
Jeśli zapytanie tworzy tabele tymczasowe i chcesz je uruchomić więcej niż jeden raz, musisz usunąć tabele, zanim spróbujesz je wygenerować ponownie. Podstawowa składnia tego jest następująca:
drop table #tempTable
Próba wykonania tej składni przed utworzeniem tabeli (np. Przy pierwszym uruchomieniu składni) spowoduje kolejny błąd:
Cannot drop the table '#tempTable', because it does not exist or you do not have permission.
Aby tego uniknąć, możesz sprawdzić, czy tabela już istnieje, zanim ją upuścisz:
IF OBJECT_ID ('tempdb..#tempTable', 'U') is not null DROP TABLE #tempTable