Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Supprimer toutes les tables temporaires d'une instance

L'intérêt des tables temporaires est qu'elles sont... temporaires. Dès qu'ils sortent du champ d'application

  • #temp create dans la procédure stockée :la procédure stockée se termine
  • #temp créé en session :la session se déconnecte
  • ##temp :la session qui l'a créé se déconnecte

La requête disparaît. Si vous constatez que vous devez supprimer les tables temporaires manuellement, vous devez revoir la façon dont vous les utilisez.

Pour les globales, cela générera et exécutera l'instruction pour toutes les supprimer.

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

C'est cependant une mauvaise idée de supprimer les tables temporaires [globales] des autres sessions.

Pour le local (à cette session ) tables temporaires, déconnectez-vous et reconnectez-vous à nouveau.