Suche…


Bemerkungen

Temporäre Tische sind wirklich sehr hilfreich.

Die Tabelle kann zur Laufzeit erstellt werden und kann alle Operationen ausführen, die in einer normalen Tabelle ausgeführt werden.

Diese Tabellen werden in einer Tempdb-Datenbank erstellt.

Wann verwendet?

  1. Wir müssen komplexe Join-Operationen durchführen.

  2. Wir führen eine große Anzahl von Zeilenmanipulationen in gespeicherten Prozeduren durch.

  3. Kann die Verwendung des Cursors ersetzen.

Dadurch wird die Leistung erhöht.

Lokale Temp-Tabelle

  • Ist verfügbar, bis die aktuelle Verbindung für den Benutzer bestehen bleibt.

    Wird automatisch gelöscht, wenn der Benutzer die Verbindung trennt.

    Der Name sollte mit # beginnen (#temp)

     CREATE TABLE #LocalTempTable(
                    StudentID      int,
                    StudentName    varchar(50), 
                    StudentAddress varchar(150))
    
insert into #LocalTempTable values ( 1, 'Ram','India');

select * from #LocalTempTable

Nachdem Sie alle diese Anweisungen ausgeführt haben, schließen Sie das Abfragefenster und öffnen es erneut

“Invalid object name #LocalTempTable”

Globale Temp-Tabelle

  • Beginnt mit ## (## temp).

    Wird nur gelöscht, wenn der Benutzer alle Verbindungen trennt.

    Es verhält sich wie ein fester Tisch.

    CREATE TABLE ##NewGlobalTempTable(
                   StudentID      int,
                   StudentName    varchar(50), 
                   StudentAddress varchar(150))
    
    Insert Into ##NewGlobalTempTable values ( 1,'Ram','India');
    Select * from ##NewGlobalTempTable
    

Hinweis: Diese können von allen Benutzern der Datenbank unabhängig von der Berechtigungsstufe angezeigt werden.

Temp-Tabellen löschen

Temporäre Tabellen müssen eindeutige IDs haben (innerhalb der Sitzung, bei lokalen temporären Tabellen oder innerhalb des Servers für globale temporäre Tabellen). Wenn Sie versuchen, eine Tabelle mit einem bereits vorhandenen Namen zu erstellen, wird der folgende Fehler zurückgegeben:

There is already an object named '#tempTable' in the database.

Wenn Ihre Abfrage temporäre Tabellen erzeugt und Sie sie mehr als einmal ausführen möchten, müssen Sie die Tabellen löschen, bevor Sie versuchen, sie erneut zu generieren. Die grundlegende Syntax dafür ist:

drop table #tempTable

Wenn Sie versuchen, diese Syntax auszuführen, bevor die Tabelle existiert (z. B. beim ersten Durchlauf Ihrer Syntax), wird ein anderer Fehler ausgegeben:

Cannot drop the table '#tempTable', because it does not exist or you do not have permission.

Um dies zu vermeiden, können Sie vor dem Löschen überprüfen, ob die Tabelle bereits vorhanden ist:

IF OBJECT_ID ('tempdb..#tempTable', 'U') is not null DROP TABLE #tempTable


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow