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

Tymczasowy zakres stołu?

Po pierwsze, lokalne tabele tymczasowe utworzone w ramach procedury są usuwane po zakończeniu procedury. Z BOL na temat tworzenia tabeli :

Jeśli twój kod dostępu do danych prawidłowo otwiera połączenie, wywołuje procedurę składowaną, a następnie zamyka połączenie, tabela tymczasowa jest tworzona w procedurze, która jest skutecznie niszczona.

Mówię „skutecznie”, aby poruszyć inny punkt. Nie zalecałbym upuszczania tabeli tymczasowej na końcu procedury, chociaż dodałbym kontrolę tuż przed utworzeniem tabeli tymczasowej i upuściłem ją, jeśli istnieje (np. if object_id('tempdb..#Foo') is not null ). Argumentem przeciwko porzuceniu tabeli tymczasowej na końcu jest to, że wywołując instrukcję Drop, zmuszasz SQL Server do zużywania zasobów w celu zniszczenia tabeli w tym miejscu, podczas gdy czekasz na zakończenie procedury. Jeśli zamiast tego wyjdziesz poza zakres, twoja procedura natychmiast się zakończy i pozwolisz SQL Serverowi zniszczyć tabelę w wybranym przez siebie czasie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pusta instrukcja w T-SQL

  2. Jak odszyfrować procedurę składowaną w SQL Server 2008

  3. Dane przestawne w T-SQL

  4. Wiele wierszy w jeden wiersz i łączenie kolumny SQL

  5. Jak wyszukiwać ciąg w bazach danych SQL Server