Dočasné tabulky serveru SQL Server dočasně ukládají data. S dočasnou tabulkou můžete provádět stejné operace – jako SELECT, INSERT, DELETE a UPDATE – jako s běžnou tabulkou SQL.
Tabulky Temp žijí v databázi tempdb a jsou viditelné pouze po dobu trvání připojení. Po ukončení připojení SQL Server odstraní dočasnou tabulku. Můžete jej také kdykoli výslovně smazat.
Typy tabulek SQL Server Temp
Existují dva typy dočasných tabulek serveru SQL Server: místní a globální.
Místní tabulka tepl
Místní dočasná tabulka je viditelná pouze pro připojení, které ji vytvořilo. Když toto připojení skončí nebo se uživatel odpojí od SQL Server například místní dočasná tabulka je automaticky zrušena.
Chcete-li vytvořit místní dočasnou tabulku, použijte na začátku názvu tabulky s příkazem CREATE TABLE jeden symbol hash (#). Zde je syntaxe.
VYTVOŘITSTŮL#TempTable (
Sloupec 1 INT,
Sloupec 2 VARCHAR(50)
);
Například následující kód vytvoří dočasnou tabulku s názvem TempCustomer s polem pro jméno a e-mail.
VYTVOŘITSTŮL#TempCustomer (
ID int NOT NULL PRIMÁRNÍ KLÍČ
Celé jméno VARCHAR(50),
E-mail VARCHAR(50)
);
Globální teplotní tabulka
Globální dočasná tabulka je dočasná tabulka viditelná všem připojením a uživatelům. SQL Server jej zruší, když se odpojí všechna připojení a uživatelé, kteří odkazují na tabulku.
Chcete-li vytvořit globální dočasnou tabulku, přidejte před název tabulky dvojité hashe (##) a použijte příkaz CREATE TABLE.
VYTVOŘITSTŮL##TempTable (
Sloupec 1 INT,
Sloupec 2 VARCHAR(50)
);
Následující kód vytvoří globální dočasnou tabulku s názvem TempCustomer.
VYTVOŘITSTŮL##TempCustomer (
ID int NOT NULL PRIMÁRNÍ KLÍČ
Celé jméno VARCHAR(50),
E-mail VARCHAR(50)
);
Tento kód je podobný příkladu pro místní dočasnou tabulku, jen se dvěma symboly hash namísto jednoho. Nyní můžete použít standardní SQL příkazy přidat nebo upravit data v dočasné tabulce.
Jak vypustit tabulku temp
Instance SQL Server automaticky zahodí dočasnou tabulku, když se všichni uživatelé, kteří na ni odkazují, odpojí. Jako osvědčený postup byste měli vždy explicitně zrušit své dočasné tabulky, abyste uvolnili paměť tempdb.
Chcete-li zrušit dočasnou tabulku, použijte příkaz DROP TABLE IF EXISTS následovaný názvem dočasné tabulky.
Zde je návod, jak zrušit tabulku #TempCustomer:
POKLESSTŮLLIEXISTUJE#TempCustomer
Použijte stejný kód, ale vyměňte název tabulky a zrušte globální dočasnou tabulku.
POKLESSTŮLLIEXISTUJE##TempCustomer
Typické použití SQL Temp tabulek
Dočasné tabulky jsou užitečné, když potřebujete uložit mezivýsledky složitých dotazů, které potřebujete dále zpracovávat. Například při vytváření sestav může být nutné vytvořit dočasné tabulky pro ukládání výsledků dotazů z několika databází. Poté můžete vygenerovat konečnou sestavu spuštěním dotazu na dočasné tabulky.
Dalším scénářem, kde jsou dočasné tabulky užitečné, je situace, kdy potřebujete výsledky dotazu z jedné tabulky ke spuštění dalšího dotazu. Výsledky můžete uložit do dočasné tabulky a poté na ně odkazovat v novém dotazu. V podstatě používáte dočasnou tabulku jako pracovní nebo vyrovnávací tabulku k uložení dat, která potřebujete k provedení konkrétní úlohy.
Použití Temp tabulky v SQL Server
Dočasné tabulky SQL Serveru můžete použít k dočasnému ukládání a zpracování dat. Existují dva typy dočasných tabulek, místní a globální. Místní dočasná tabulka je viditelná pro připojení, ve kterém byla vytvořena, zatímco globální dočasná tabulka je viditelná pro všechna připojení.
Temp tabulky jsou automaticky zničeny, když se odpojíte od instance serveru. Pro úsporu paměti byste je však měli po použití vždy upustit.