2014-01-09 4 views
25

Können Sie bitte den Unterschied zwischen #temptable und ## TempTable im MSSQL-Server erklären. Ich habe darüber gegoogelt, kann aber nicht.Unterschied zwischen #temptable und ## TempTable?

Bitte helfen Sie mir zu diesem

+0

Vielen Dank für Ihre Antworten. Ich habe jetzt eine klare Idee –

+1

Eins ist CamelCase und eins ist Kleinbuchstabe – DaveBoltman

Antwort

29

Lokale Temptabellen

Lokale temporäre Tabellen sind nur für die aktuelle Verbindung für den Benutzer zur Verfügung; und sie werden automatisch gelöscht, wenn der Benutzer von Instanzen trennt. Der Name der lokalen temporären Tabelle wird mit dem Hashzeichen ("#") signiert.

Beispiel:

CREATE TABLE #LocalTempTable(
UserID int, 
UserName varchar(50), 
UserAddress varchar(150)) 

Umfang der lokalen temporärer Tabelle ist nur mit der aktuellen Verbindung von aktuellem Benutzer begrenzt.

globale temporäre Tabellen

globale temporäre Tabellen Name beginnt mit einem doppelten Hash ("##"). Sobald diese Tabelle durch eine Verbindung erstellt wurde, ist sie wie eine permanente Tabelle für jeden Benutzer über eine beliebige Verbindung verfügbar ( ). Es kann nur gelöscht werden, sobald alle Verbindungen geschlossen wurden.

Beispiel:

CREATE TABLE ##NewGlobalTempTable(
UserID int, 
UserName varchar(50), 
UserAddress varchar(150)) 

Globale temporäre Tabellen sind sichtbar alle SQL Server-Verbindungen. Wenn Sie eines davon erstellen, können alle Benutzer es sehen.

Vignesh Sie mehr wissen über dieses here

4

`#table bezieht sich auf eine lokale (sichtbar nur den Benutzer, der sie erstellt wurden) temporäre Tabelle.‘

'## Tabelle bezieht sich auf eine globale (für alle Benutzer sichtbare) temporäre Tabelle.'

3

Lokale temporäre Tabellen sind nur für ihre Ersteller während derselben Verbindung zu einer Instanz von SQL Server sichtbar, als wenn die Tabellen zum ersten Mal erstellt oder referenziert wurden. Lokale temporäre Tabellen werden gelöscht, nachdem der Benutzer die Verbindung mit der SQL Server-Instanz getrennt hat. Globale temporäre Tabellen sind für jeden Benutzer und jede Verbindung nach ihrer Erstellung sichtbar und werden gelöscht, wenn alle Benutzer, die auf die Tabelle verweisen, die Verbindung zur Instanz von SQL Server trennen.

Taken from here

More on this

3

Hier ist eine weitere schnelle Überschau von SQL temporäre Tabellen, wenn Sie Google würde, könnte man mehr darüber wissen bekommen

Lokale Tempentabelle

Lokale Temp-Tabellen sind nur für die aktuelle Verbindung verfügbar für den Benutzer; und sie werden automatisch gelöscht, wenn der Benutzer die Verbindung zu Instanzen trennt. Der Name der lokalen temporären Tabelle wird mit einem Hash-Zeichen ("#") angezeigt.

Globalen Temp-Tabelle

globale temporäre Tabellen Name beginnt mit einem doppelten Hash ("##"). Sobald diese Tabelle durch eine Verbindung erstellt wurde, ist sie wie eine permanente Tabelle für jeden Benutzer über jede Verbindung verfügbar. Es kann nur gelöscht werden, nachdem alle Verbindungen geschlossen wurden.

Beide temporäre Tabellen werden im temporären Ordner von tempdb gespeichert. Wenn wir eine temporäre Tabelle erstellen, wird sie in den temporären Ordner der Tempdb-Datenbank verschoben.

temporäre Tabelle mit spezifischer ID

enter image description here

Wenn Sie Temp-Tabelle erstellen, erstellt SQL Server Tabellennamen mit spezifischer ID zusammen, so dass es kollidieren wird nicht mit einem anderen Tabelle Tabellennamen

primarily sourced from

+0

Ihre Antwort ist sehr ähnlich zu meiner –

+2

weil ** du und ich ** aus dem gleichen Artikel brotha gestohlen;), aber ich schlage vor, dass anstelle meines eigenen Wortes weil 'Abhijit Jana' Der ursprüngliche Autor erklärte sehr einfach als ich würde;) – Kirk

Verwandte Themen