Ist es erforderlich, #
vor dem Erstellen einer temporären Tabelle in SQL Server zu verwenden?
Beispiel:
SELECT column1, column2, someInt, someVarChar
INTO ItemBack1
FROM table2
WHERE table2.ID = 7
Ist es für ItemBack1 erforderlich, das #
Symbol zu verwenden?
Wenn nicht, wozu werden dann #
temporäre Tabellen erstellt?
Antworten:
Ja. Sie müssen dem Tabellennamen "#" (Hash) voranstellen, um temporäre Tabellen zu erstellen.
Wenn Sie die Tabelle später NICHT benötigen, erstellen Sie sie. Temporäre Tabellen sind normalen Tabellen sehr ähnlich. Es wird jedoch in tempdb erstellt. Außerdem ist der Zugriff nur über die aktuelle Sitzung möglich, dh für EG: Wenn ein anderer Benutzer versucht, auf die von Ihnen erstellte temporäre Tabelle zuzugreifen, kann er dies nicht tun.
"##" (Doppel-Hash erstellt eine "globale" temporäre Tabelle, auf die auch andere Sitzungen zugreifen können.
Unter dem folgenden Link finden Sie die Grundlagen für temporäre Tabellen: http://www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005
Wenn der Inhalt Ihrer Tabelle weniger als 5000 Zeilen umfasst und KEINE Datentypen wie nvarchar (MAX), varbinary (MAX) enthält, sollten Sie die Verwendung von Tabellenvariablen in Betracht ziehen.
Sie sind die schnellsten, da sie genau wie alle anderen Variablen sind, die im RAM gespeichert sind.Sie werden auch in Tempdb gespeichert, nicht im RAM .Weitere Informationen zu Tabellenvariablen: http://odetocode.com/articles/365.aspx
quelle
Der Unterschied zwischen diesen zwei Tabellen
ItemBack1
und#ItemBack1
ist , dass das erste auf persistent (permanent) , wo , wie die anderen vorübergehend ist.Schauen Sie sich jetzt Ihre Frage noch einmal an
Die Antwort lautet Ja , da
#
die Tabelle ohne dieses Vorzeichen keine temporäre Tabelle ist, sondern unabhängig von allen Sitzungen und Bereichen.quelle