Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Elimine todas as tabelas temporárias de uma instância


O ponto das tabelas temporárias é que elas são... temporárias. Assim que eles saem do escopo
  • #temp criar no proc armazenado :saída do proc armazenado
  • #temp criado na sessão:desconexão da sessão
  • ##temp :sessão que a criou desconecta

A consulta desaparece. Se você achar que precisa remover manualmente as tabelas temporárias, precisará rever como as está usando.

Para os globais, isso gerará e executará a instrução para descartar todos.
declare @sql nvarchar(max)
select @sql = isnull(@sql+';', '') + 'drop table ' + quotename(name)
from tempdb..sysobjects
where name like '##%'
exec (@sql)

No entanto, é uma má ideia descartar as tabelas temporárias [globais] de outras sessões.

Para o local (para esta sessão ) tabelas temporárias, basta desconectar e reconectar novamente.