Sednem tabel tymczasowych jest to, że są… tymczasowe. Gdy tylko wyjdą poza zakres
- #temp utworzyć w zapisanym proc:zapisane wyjścia z proc
- #temp utworzony w sesji:sesja rozłącza się
- ##temp :sesja, która go utworzyła, rozłącza się
Zapytanie znika. Jeśli okaże się, że musisz ręcznie usunąć tabele tymczasowe, musisz ponownie sprawdzić, jak ich używasz.
W przypadku globalnych spowoduje to wygenerowanie i wykonanie instrukcji, aby usunąć je wszystkie.
declare @sql nvarchar(max)
select @sql = isnull(@sql+';', '') + 'drop table ' + quotename(name)
from tempdb..sysobjects
where name like '##%'
exec (@sql)
Jednak porzucanie [globalnych] tabel tymczasowych innych sesji jest złym pomysłem.
Dla lokalnego (do tej sesji ) tabele tymczasowe, po prostu odłącz i połącz ponownie.