In meinem Server-Code, ich eine temporäre Tabelle (genannt #temp) erstellen, fügen Sie einige Daten und löschen Sie dann die temporäre Tabelle. Wenn mehr als 1 Benutzer gleichzeitig diesen Abschnitt des Codes (Erstellen der temporären Tabelle) ausführen würden, würde SQL Server 2008 eine temporäre Tabelle pro Benutzer erstellen oder erstellt sie eine 'globale' temporäre Tabelle? Wenn es die eine Tabelle gibt, nehme ich an, dass ich Probleme bekommen würde, wenn dieselbe Tabelle mehr als einmal erstellt wird?Sql Server 2008, sind temporäre Tabellen eindeutig
Antwort
Von MSDN:
können Sie erstellen lokale und globale temporäre Tabellen. Lokale temporäre Tabellen sind nur sichtbar, in der aktuellen Sitzung und globale temporäre Tabellen sind sichtbar für alle Sitzungen
...
Wenn eine lokale temporäre Tabelle wird in einer Stored Procedure oder Anwendung erstellt, die auf dem gleichen ausgeführt werden können Zeit von mehreren Benutzern, das Datenbankmodul muss in der Lage sein, die Tabellen zu unterscheiden, die von den verschiedenen Benutzern erstellt werden. Das Datenbankmodul führt dies intern durch Anhängen eines numerischen Suffix an jeden lokalen temporäre Tabellenname. Der vollständige Name einer temporären Tabelle, wie in der Tabelle sysobjects in Tempdb gespeichert, besteht aus dem Tabellenname, der in der Anweisung CREATE TABLE und dem systemgenerierten numerischen Suffix angegeben wird. Um das Suffix zuzulassen, darf der für einen lokalen temporären Namen angegebene Tabellenname 116 Zeichen nicht überschreiten.
Auch aus dem MSDN: Präfix lokale temporäre Tabellennamen mit einzelnen Nummernzeichen (#table_name) und Präfix globalen temporäre Tabellennamen mit einem doppelten Nummernzeichen (## table_name). – Eminem