Microsoft SQL Server
Использование таблицы TEMP
Поиск…
замечания
Временные таблицы действительно очень полезны.
Таблица может быть создана во время выполнения и может выполнять все операции, выполняемые в обычной таблице.
Эти таблицы создаются в базе данных tempdb.
Используется когда?
Мы должны выполнить сложную операцию соединения.
Мы выполняем большое количество манипуляций с строками в хранимых процедурах.
Может заменить использование курсора.
Таким образом, увеличивается производительность.
Локальная таблица темпов
Будет доступно до тех пор, пока текущее соединение не будет сохранено для пользователя.
Автоматически удаляется, когда пользователь отключается.
Имя должно начинаться с # (#temp)
CREATE TABLE #LocalTempTable( StudentID int, StudentName varchar(50), StudentAddress varchar(150))
insert into #LocalTempTable values ( 1, 'Ram','India');
select * from #LocalTempTable
После выполнения всех этих операторов, если мы закроем окно запроса и снова откроем его и попробуем вставить и выберите его, появится сообщение об ошибке
“Invalid object name #LocalTempTable”
Глобальная таблица темпов
Начнется с ## (## temp).
Будет удалено, только если пользователь отключит все подключения.
Он ведет себя как постоянный стол.
CREATE TABLE ##NewGlobalTempTable( StudentID int, StudentName varchar(50), StudentAddress varchar(150)) Insert Into ##NewGlobalTempTable values ( 1,'Ram','India'); Select * from ##NewGlobalTempTable
Примечание. Они доступны для просмотра всем пользователям базы данных, независимо от уровня разрешений.
Удаление временных таблиц
Таблицы Temp должны иметь уникальные идентификаторы (внутри сеанса, для локальных временных таблиц или внутри сервера для глобальных временных таблиц). При попытке создать таблицу с использованием уже существующего имени будет возвращена следующая ошибка:
There is already an object named '#tempTable' in the database.
Если ваш запрос создает временные таблицы, и вы хотите запускать его более одного раза, вам нужно будет отбросить таблицы, прежде чем пытаться их сгенерировать. Основной синтаксис для этого:
drop table #tempTable
Попытка выполнить этот синтаксис перед существованием таблицы (например, при первом запуске синтаксиса) вызовет еще одну ошибку:
Cannot drop the table '#tempTable', because it does not exist or you do not have permission.
Чтобы этого избежать, вы можете проверить, существует ли таблица, прежде чем отбрасывать ее, например:
IF OBJECT_ID ('tempdb..#tempTable', 'U') is not null DROP TABLE #tempTable