Poängen med tillfälliga tabeller är att de är... tillfälliga. Så fort de går utanför räckvidden
- #temp skapa i lagrad proc:lagrad proc avslutas
- #temp skapad i session:session kopplas från
- ##temp :sessionen som skapade den kopplas från
Frågan försvinner. Om du upptäcker att du behöver ta bort tillfälliga tabeller manuellt måste du gå igenom hur du använder dem igen.
För de globala kommer detta att generera och köra satsen för att släppa dem alla.
declare @sql nvarchar(max)
select @sql = isnull(@sql+';', '') + 'drop table ' + quotename(name)
from tempdb..sysobjects
where name like '##%'
exec (@sql)
Det är dock en dålig idé att släppa andra sessioners [globala] temptabeller.
För den lokala (till denna session ) temporära tabeller, koppla bara ur och återanslut igen.