Lokale temporäre Tabellen (beginnen mit #) sind auf Ihre Sitzung beschränkt; andere Sitzungen, selbst von derselben Benutzer-/Verbindungszeichenfolge, können sie nicht sehen. Die Regeln für die Lebensdauer hängen davon ab, ob die lokale temporäre Tabelle in einer gespeicherten Prozedur erstellt wurde:
- Eine lokale temporäre Tabelle, die in einer gespeicherten Prozedur erstellt wird, wird gelöscht, wenn die Prozedur endet; andere gespeicherte Prozeduren oder der aufrufende Prozess können sie nicht sehen.
- Andere lokale temporäre Tabellen werden gelöscht, wenn die Sitzung endet.
Globale temporäre Tabellen (beginnen mit ##) werden von Sitzungen gemeinsam genutzt. Sie werden gelöscht, wenn:
- Die Sitzung, die sie erstellt hat, endet
- UND keine andere Sitzung verweist auf sie
Dieser Befehl kann nützlich sein, um zu sehen, welche temporären Tabellen existieren:
select TABLE_NAME from tempdb.information_schema.tables
Und das ist praktisch, um temporäre Tabellen zu löschen, wenn Sie nicht sicher sind, ob sie existieren:
if object_id('tempdb..#SoTest') is not null drop table #SoTest
Weitere Informationen finden Sie in diesem MSDN-Artikel.