Místní dočasné tabulky (začínající #) jsou omezeny na vaši relaci; ostatní relace, dokonce i ze stejného uživatelského/připojovacího řetězce, je nevidí. Pravidla pro životnost závisí na tom, zda byla místní dočasná tabulka vytvořena v uložené proceduře:
- Místní dočasná tabulka vytvořená v uložené proceduře je po ukončení procedury zrušena; jiné uložené procedury nebo volající proces je nevidí.
- Po skončení relace jsou ostatní místní dočasné tabulky zrušeny.
Globální dočasné tabulky (začínající ##) jsou sdíleny mezi relacemi. Jsou vypuštěny, když:
- Relace, která je vytvořila, končí
- A žádná jiná relace na ně neodkazuje
Tento příkaz může být užitečný, chcete-li zjistit, které dočasné tabulky existují:
select TABLE_NAME from tempdb.information_schema.tables
A to je užitečné pro zrušení dočasných tabulek, pokud si nejste jisti, že existují:
if object_id('tempdb..#SoTest') is not null drop table #SoTest
Další informace naleznete v tomto článku MSDN.