sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server 2005 y ámbito de tabla temporal

Las mesas temporales locales (comienzan con #) están limitadas a su sesión; otras sesiones, incluso del mismo usuario/cadena de conexión, no pueden verlos. Las reglas para la vida útil dependen de si la tabla temporal local se creó en un procedimiento almacenado:

  • Una tabla temporal local que se crea en un procedimiento almacenado se descarta cuando finaliza el procedimiento; otros procedimientos almacenados, o el proceso de llamada, no pueden verlos.
  • Otras tablas temporales locales se eliminan cuando finaliza la sesión.

Las tablas temporales globales (que comienzan con ##) se comparten entre sesiones. Se eliminan cuando:

  • La sesión que los creó termina
  • Y ninguna otra sesión se refiere a ellos

Este comando puede ser útil para ver qué tablas temporales existen:

select TABLE_NAME from tempdb.information_schema.tables 

Y esto es útil para descartar tablas temporales si no está seguro de que existan:

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

Consulte este artículo de MSDN para obtener más información.