sql >> Database >  >> RDS >> Sqlserver

Verwijder alle tijdelijke tabellen voor een instantie

Het punt van tijdelijke tabellen is dat ze... tijdelijk zijn. Zodra ze buiten bereik gaan

  • #temp create in opgeslagen proces :opgeslagen proces wordt afgesloten
  • #temp aangemaakt in sessie :sessie verbroken
  • ##temp :sessie die het heeft gemaakt, wordt verbroken

De vraag verdwijnt. Als u merkt dat u tijdelijke tabellen handmatig moet verwijderen, moet u opnieuw bekijken hoe u ze gebruikt.

Voor de globale zal dit de instructie genereren en uitvoeren om ze allemaal te laten vallen.

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

Het is echter een slecht idee om de [globale] tijdelijke tabellen van andere sessies te laten vallen.

Voor de lokale (naar deze sessie ) tijdelijke tabellen, gewoon loskoppelen en opnieuw verbinden.



  1. Zijn enkele mysql-statements atomair in MyISAM en InnoDB?

  2. Variabelen gebruiken in MySQL UPDATE (PHP/MySQL)

  3. Help me om Oracle-terminologie in SQL Server-terminologie te plaatsen

  4. Hoe krijg ik een tekenreeks voor de start- en einddatum van de week in PostgreSQL?