Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Differenza tra tabelle temporanee locali e globali in SQL Server

Quando crei una tabella temporanea in SQL Server, hai la possibilità di trasformarla in una tabella temporanea locale o globale.

Ecco una breve descrizione delle principali differenze tra tabelle temporanee locali e tabelle temporanee globali.

Denominazione

  • I nomi delle tabelle temporanee locali iniziano con un unico segno numerico (# ). Ad esempio, #MyTable .
  • Le tabelle temporanee locali ottengono anche un suffisso numerico generato dal sistema aggiunto al nome. Questo viene generato automaticamente da SQL Server. Ciò consente a più sessioni di creare tabelle temporanee locali con lo stesso nome senza causare conflitti di denominazione. Tuttavia, gli utenti possono comunque interrogare la tabella senza dover conoscere il suffisso.
  • I nomi delle tabelle temporanee globali iniziano con un doppio segno numerico (## ). Ad esempio, ##MyTable .
  • Le tabelle temporanee globali non aggiunto con un suffisso come con le tabelle temporanee locali.

Visibilità

  • Le tabelle temporanee locali sono visibili solo nella sessione corrente.
  • Le tabelle temporanee globali sono visibili a tutte le sessioni.

Durata della vita

  • Le tabelle temporanee locali vengono automaticamente eliminate alla fine della sessione corrente. Una tabella temporanea locale creata in una stored procedure viene eliminata automaticamente al termine della stored procedure. La tabella può essere referenziata da qualsiasi stored procedure nidificata eseguita dalla stored procedure che ha creato la tabella. Impossibile fare riferimento alla tabella dal processo che ha chiamato la procedura memorizzata che ha creato la tabella.
  • Le tabelle temporanee globali vengono automaticamente eliminate al termine della sessione che ha creato la tabella e tutte le altre attività hanno smesso di farvi riferimento. L'associazione tra un'attività e una tabella viene mantenuta solo per la durata di una singola istruzione T-SQL. Pertanto, una tabella temporanea globale viene eliminata al completamento dell'ultima istruzione T-SQL che faceva riferimento attivamente alla tabella al termine della sessione di creazione.