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

Descartar todas las tablas temporales para una instancia

El punto de las tablas temporales es que son... temporales. Tan pronto como salgan del alcance

  • #temp crear en proceso almacenado:salidas de proceso almacenado
  • #temp creado en la sesión:la sesión se desconecta
  • ##temp :la sesión que lo creó se desconecta

La consulta desaparece. Si descubre que necesita eliminar las tablas temporales manualmente, debe revisar cómo las está usando.

Para los globales, esto generará y ejecutará la instrucción para descartarlos a todos.

declare @sql nvarchar(max)
select @sql = isnull(@sql+';', '') + 'drop table ' + quotename(name)
from tempdb..sysobjects
where name like '##%'
exec (@sql)

Sin embargo, es una mala idea descartar las tablas temporales [globales] de otras sesiones.

Para el local (a esta sesión ) tablas temporales, simplemente desconéctese y vuelva a conectarse.