Поиск…


замечания

Временные таблицы действительно очень полезны.

Таблица может быть создана во время выполнения и может выполнять все операции, выполняемые в обычной таблице.

Эти таблицы создаются в базе данных tempdb.

Используется когда?

  1. Мы должны выполнить сложную операцию соединения.

  2. Мы выполняем большое количество манипуляций с строками в хранимых процедурах.

  3. Может заменить использование курсора.

Таким образом, увеличивается производительность.

Локальная таблица темпов

  • Будет доступно до тех пор, пока текущее соединение не будет сохранено для пользователя.

    Автоматически удаляется, когда пользователь отключается.

    Имя должно начинаться с # (#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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow