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?

  1. Musimy wykonać skomplikowaną operację łączenia.

  2. Wykonujemy dużą liczbę manipulacji wierszami w procedurach przechowywanych.

  3. 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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow