Временные таблицы могут быть созданы во время выполнения и могут выполнять все виды операций, которые может выполнять одна обычная таблица. Но, в зависимости от типов таблиц, область действия ограничена. Эти таблицы создаются внутри базы данных tempdb.
SQL Server предоставляет два типа временных таблиц в зависимости от поведения и области действия таблицы. Это:
• Локальная временная таблица
• Глобальная временная таблица
Локальная временная таблица
Локальные временные таблицы доступны только для текущего соединения для пользователя; и они автоматически удаляются, когда пользователь отключается от экземпляров. Имя локальной временной таблицы отмечается знаком хеша ( "#" ).
Глобальная временная таблица
Имя глобальной временной таблицы начинается с двойного хеша ( "##" ). Как только эта таблица была создана соединением, как постоянная таблица, она становится доступной любому пользователю по любому соединению. Его можно удалить только после того, как все соединения будут закрыты.
Когда использовать временные таблицы?
• Когда мы выполняем большое количество операций со строками в хранимых процедурах.
• Это полезно для замены курсора . Мы можем сохранить данные набора результатов во временной таблице, а затем мы можем манипулировать данными оттуда.
• Когда у нас сложная операция соединения .
Очки, которые следует помнить перед использованием временных таблиц -
• Временная таблица, созданная на базе данных базы данных SQL Server. Это отдельная база данных. Таким образом, это дополнительные издержки, которые могут вызвать проблемы с производительностью.
• Количество строк и столбцов должно быть минимально необходимым.
• Таблицы должны быть удалены, когда они закончили свою работу.
Альтернативный подход: переменная таблицы -
Альтернативой временной таблицы является переменная Table, которая может выполнять все виды операций, которые мы можем выполнять в временной таблице. Ниже приведен синтаксис использования табличной переменной.
Когда использовать переменную таблицы над таблицей Temp -
Таблица переменных всегда полезна для меньшего количества данных. Если результирующий набор возвращает большое количество записей, нам нужно перейти к временной таблице.