Il punto delle tabelle temporanee è che sono... temporanee. Non appena escono dal campo di applicazione
- #temp create in stored proc :stored proc esce
- #temp creato nella sessione:la sessione si disconnette
- ##temp :la sessione che l'ha creata si disconnette
La domanda scompare. Se ritieni di dover rimuovere manualmente le tabelle temporanee, devi rivedere il modo in cui le stai utilizzando.
Per quelli globali, questo genererà ed eseguirà l'istruzione per eliminarli tutti.
declare @sql nvarchar(max)
select @sql = isnull(@sql+';', '') + 'drop table ' + quotename(name)
from tempdb..sysobjects
where name like '##%'
exec (@sql)
Tuttavia, è una cattiva idea eliminare le tabelle temporanee [globali] di altre sessioni.
Per il locale (a questa sessione ) tabelle temporanee, disconnetti e riconnettiti di nuovo.