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

SQL Server 2005 e ambito tabella temporanea

Le tabelle temporanee locali (iniziano con #) sono limitate alla tua sessione; altre sessioni, anche dallo stesso utente/stringa di connessione, non possono vederle. Le regole per la durata dipendono dal fatto che la tabella temporanea locale sia stata creata in una stored procedure:

  • Una tabella temporanea locale creata in una procedura memorizzata viene eliminata al termine della procedura; altre stored procedure o il processo chiamante non possono vederle.
  • Altre tabelle temporanee locali vengono eliminate al termine della sessione.

Le tabelle temporanee globali (iniziano con ##) sono condivise tra le sessioni. Vengono eliminati quando:

  • La sessione che li ha creati termina
  • E nessun'altra sessione si riferisce a loro

Questo comando può essere utile per vedere quali tabelle temporanee esistono:

select TABLE_NAME from tempdb.information_schema.tables 

E questo è utile per eliminare le tabelle temporanee se non sei sicuro che esistano:

if object_id('tempdb..#SoTest') is not null drop table #SoTest

Per ulteriori informazioni, vedere questo articolo MSDN.