Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Upuść wszystkie tabele tymczasowe na przykład

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wiele ograniczeń klucza obcego w jednej kolumnie w SQL Server 2008

  2. Dlaczego SQL Server 2008 porządkuje, gdy używa się funkcji GROUP BY i nie określono kolejności?

  3. SQL Server, znajdź dowolną sekwencję wartości

  4. Usuń wszystkie bazy danych z serwera

  5. Nie można wstawić wartości null do datetime na serwerze sql