SQL # Tempová tabulka – Rozdíl mezi # a ## temp tabulkou

Tempová tabulka s hashtagem # nebo ## je dočasná tabulka, která je uložena v systémové databázi tempdb. Tabulka existuje pouze po dobu, po kterou je otevřena user session ID. Rozeznáváme 2 typy tempových tabulek:

  • Lokální # tempová tabulka – je přístupná pouze v rámci dané session, tzn vidí ji pouze uživatel vykonávající skript
  • Globální ## tempová tabulka – je přístupná z různých sessions, to znamená, že s ní mohou pracovat i ostatní uživatelé

Lokální # tempová tabulka

Lokální tempovou tabulku založíme jednoduše v rámci session 1:

SELECT 1 AS Number
INTO #Temp_table;

Lokální temp tabulka - ukázka

Pokud si otevřeme novou session (2) a spustíme dotaz na tuto tempovou tabulku, tak dostaneme chybuInvalid object name ‘#Temp_table’, protože temp tabulka je založena v session 1 a druhá session na ni nevidí

Lokální tempová tabulka - dotaz z jiné session - ukázka

Globální ## temp tabulka

V původní session 1 si založme pro změnu stejnou tabulku, ale tentokrát bude globální (##Temp_table):

Globální tempová tabulka - ukázka

Když se teď dotážeme na tabulku z jiné session, tak dostaneme výsledek, protože tentokrát na tabulku jiná session vidí:

Globální tempová tabulka - dotaz z jiné session - ukázka

 

 

_______________________________________________________________________________________________
Intelligent technologies - podniková řešení a školení
SQL # Tempová tabulka – Rozdíl mezi # a ## temp tabulkou
5 (100%) 1 vote

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

This site uses Akismet to reduce spam. Learn how your comment data is processed.