sql >> Databasteknik >  >> RDS >> Sqlserver

Släpp alla tillfälliga tabeller för en instans

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.



  1. Hur tar jag bort utökade ASCII-tecken från en sträng i T-SQL?

  2. varför måste jag använda mb_convert_encoding($name,'ISO-8859-15','utf-8') för att få accenttecken att visas?

  3. SQL Sub-frågor i kontrollbegränsning

  4. Platta ut aggregerade nyckel/värdepar från ett JSONB-fält?