Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server 2005 und temporärer Tabellenbereich

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.