sql >> Database >  >> RDS >> Sqlserver

Verschil tussen lokale en globale tijdelijke tabellen in SQL Server

Wanneer u een tijdelijke tabel in SQL Server maakt, heeft u de mogelijkheid om er een lokale of globale tijdelijke tabel van te maken.

Hier volgt een kort overzicht van de belangrijkste verschillen tussen lokale tijdelijke tabellen en globale tijdelijke tabellen.

Naam geven

  • De namen van lokale tijdelijke tabellen beginnen met een enkel hekje (# ). Bijvoorbeeld #MyTable .
  • Lokale tijdelijke tabellen krijgen ook een door het systeem gegenereerd numeriek achtervoegsel toegevoegd aan de naam. Deze wordt automatisch gegenereerd door SQL Server. Hierdoor kunnen meerdere sessies lokale tijdelijke tabellen maken met dezelfde naam zonder naamconflicten te veroorzaken. Gebruikers kunnen echter nog steeds de tabel opvragen zonder het achtervoegsel te hoeven kennen.
  • De namen van de globale tijdelijke tabellen beginnen met een dubbel hekje (## ). Bijvoorbeeld ##MyTable .
  • Globale tijdelijke tabellen zijn niet toegevoegd met een achtervoegsel zoals bij lokale tijdelijke tabellen.

Zichtbaarheid

  • Lokale tijdelijke tabellen zijn alleen zichtbaar in de huidige sessie.
  • Globale tijdelijke tabellen zijn zichtbaar voor alle sessies.

Levensduur

  • Lokale tijdelijke tabellen worden automatisch verwijderd aan het einde van de huidige sessie. Een lokale tijdelijke tabel die in een opgeslagen procedure is gemaakt, wordt automatisch verwijderd wanneer de opgeslagen procedure is voltooid. Er kan naar de tabel worden verwezen door alle geneste opgeslagen procedures die worden uitgevoerd door de opgeslagen procedure waarmee de tabel is gemaakt. Er kan niet naar de tabel worden verwezen door het proces dat de opgeslagen procedure heeft aangeroepen die de tabel heeft gemaakt.
  • Globale tijdelijke tabellen worden automatisch verwijderd wanneer de sessie die de tabel heeft gemaakt, eindigt en alle andere taken niet meer naar deze tabellen verwijzen. De koppeling tussen een taak en een tabel wordt alleen gehandhaafd voor de duur van een enkele T-SQL-instructie. Daarom wordt een globale tijdelijke tabel verwijderd na voltooiing van de laatste T-SQL-instructie die actief naar de tabel verwees toen de aanmaaksessie eindigde.

  1. mysql selecteer top n max waarden

  2. MySQL- of MariaDB-database exporteren

  3. Hoe om te gaan met delen door nul in SQL?

  4. MySQL-fout 2006:mysql-server is verdwenen