sql >> Database teknologi >  >> RDS >> Sqlserver

Slip alle midlertidige tabeller for en instans

Pointen med midlertidige tabeller er, at de er.. midlertidige. Så snart de går uden for rækkevidde

  • #temp opret i lagret proc:lagret proc afsluttes
  • #temp oprettet i session:session afbrydes
  • ##temp :session, der skabte den, afbrydes

Forespørgslen forsvinder. Hvis du opdager, at du har brug for at fjerne midlertidige tabeller manuelt, skal du gense, hvordan du bruger dem.

For de globale vil dette generere og udføre sætningen for at droppe dem alle.

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

Det er dog en dårlig idé at droppe andre sessioners [globale] midlertidige tabeller.

For de lokale (til denne session ) midlertidige tabeller, skal du bare afbryde forbindelsen og oprette forbindelse igen.



  1. Unserialize PHP ved hjælp af Microsoft SQL Query

  2. Fjerner dubletter med unikt indeks

  3. Hvad er forskellen mellem ROWNUM og ROW_NUMBER i en Oracle-database?

  4. MySQL:Se efter den samme streng i flere kolonner