Временните таблици на SQL Server съхраняват данни временно. Можете да извършвате същите операции — като SELECT, INSERT, DELETE и UPDATE — върху временна таблица, както бихте направили с обикновена SQL таблица.
Временните таблици живеят в базата данни tempdb и са видими само по време на връзката. Когато прекратите връзката, SQL Server изтрива временната таблица. Можете също така изрично да го изтриете по всяко време.
Типове временни таблици на SQL Server
Има два типа временни таблици на SQL Server: локални и глобални.
Местна температурна таблица
Локална временна таблица е видима само за връзката, която я е създала. Когато тази връзка приключи или потребителят се откачи от SQL сървър например локална временна таблица автоматично се премахва.
За да създадете локална временна таблица, използвайте единичен хеш символ (#) в началото на името на таблицата с оператора CREATE TABLE. Ето го синтаксиса.
СЪЗДАВАЙТЕТАБЛИЦА#TempTable (
Колона1 INT,
Колона2 VARCHAR(50)
);
Например, следният код създава временна таблица, наречена TempCustomer, с поле за име и имейл.
СЪЗДАВАЙТЕТАБЛИЦА#TempCustomer (
ID int NOT NULL PRIMARY KEY
Пълно име VARCHAR(50),
Изпратете имейл до VARCHAR(50)
);
Таблица за глобална температура
Глобалната временна таблица е временна таблица, видима за всички връзки и потребители. SQL Server ще го изпусне, когато всички връзки и потребители, които препращат към таблицата, са прекъснати.
За да създадете глобална временна таблица, добавете префикс към името на таблицата с двойни хешове (##) и използвайте израза CREATE TABLE.
СЪЗДАВАЙТЕТАБЛИЦА##TempTable (
Колона1 INT,
Колона2 VARCHAR(50)
);
Следният код създава глобална временна таблица с име TempCustomer.
СЪЗДАВАЙТЕТАБЛИЦА##Временен клиент (
ID int NOT NULL PRIMARY KEY
Пълно име VARCHAR(50),
Изпратете имейл до VARCHAR(50)
);
Този код е подобен на примера за локалната временна таблица, само с два хеш символа вместо един. Вече можете да използвате стандартни SQL команди за добавяне или манипулиране на данните във временната таблица.
Как да премахнете временна таблица
Екземплярът на SQL Server автоматично премахва временна таблица, когато всички потребители, които го препращат, са прекъснали връзката. Като най-добра практика, винаги трябва изрично да премахвате вашите временни таблици, за да освободите паметта на tempdb.
За да премахнете временна таблица, използвайте командата DROP TABLE IF EXISTS, последвана от името на временната таблица.
Ето как да премахнете таблицата #TempCustomer:
ИЗПУСКАЙТЕТАБЛИЦААКОСЪЩЕСТВУВА#TempCustomer
Използвайте същия код, но разменете името на таблицата, за да премахнете глобална временна таблица.
ИЗПУСКАЙТЕТАБЛИЦААКОСЪЩЕСТВУВА##Временен клиент
Типични употреби на SQL временни таблици
Временните таблици са полезни, когато трябва да съхранявате междинни резултати от сложни заявки, които трябва да обработите допълнително. Например, когато създавате отчети, може да се наложи да създадете временни таблици, за да съхранявате резултати от заявки от няколко бази данни. След това можете да генерирате окончателния отчет, като изпълните заявка към временните таблици.
Друг сценарий, при който временните таблици са полезни, е когато имате нужда от резултатите от заявка от една таблица, за да изпълните друга заявка. Можете да съхраните резултатите във временна таблица и след това да я препратите в новата си заявка. По същество вие използвате временната таблица като работна или буферна таблица, за да съхранявате данните, от които се нуждаете, за да изпълните конкретна задача.
Използване на временни таблици в SQL Server
Можете да използвате временни таблици на SQL Server за временно съхраняване и обработка на данни. Има два типа временни таблици, локални и глобални. Локална временна таблица е видима за връзката, в която е създадена, докато глобална временна таблица е видима за всички връзки.
Временните таблици се унищожават автоматично, когато прекъснете връзката със сървърния екземпляр. Въпреки това, за да запазите паметта, винаги трябва да ги изпускате след употреба.