Microsoft SQL Server
Verwendung der TEMP-Tabelle
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?
Wir müssen komplexe Join-Operationen durchführen.
Wir führen eine große Anzahl von Zeilenmanipulationen in gespeicherten Prozeduren durch.
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