2013-10-03 3 views
0

Я знаю, что #temp - это темп. Таблица действительна только для определенного сеанса. но если я определяю #temp в двух разных сеансах и запускаю их одновременно, это конфликт. если нет, то как эти таблицы хранятся в памяти. И как это отличается от ## Temp ?????Где находится #Temp? OR Как хранится #temp

ответ

1

От CREATE TABLE

Полное наименование временной таблицы, как хранится в таблице sysobjects в TempDb состоит из имени таблицы, указанной в инструкции CREATE TABLE высказыванием и система сгенерированных числовой суффикс.

Поэтому он хранится в tempdb.

Кроме того, из Temporary Tables in SQL Server

Временные таблицы и табличные переменные создаются в базе данных TempDB

+0

Хорошо, это означает, что, хотя я звоню в эту таблицу с одинаковыми именами, система идентифицирует их разными именами? –

+0

Посмотрите http://www.sqlteam.com/article/temporary-tables –

2

Временные таблицы с одной # являются «местные», в то время как те, с двойной ## являются "Глобальный".

Локальные будут выпадать из области действия после того, как будет создана хранимая процедура, которая их определяет.

Глоссарий может использоваться другими пользователями или одним и тем же пользователем из разных хранимых процедур или несколькими вызовами одной и той же процедуры. Они будут удалены только после того, как последний пользователь, ссылающийся на них, больше не ссылается на них, т. Е. После того, как последний хранимый процесс завершен.

Все они хранятся в базе данных tempdb; нет в «памяти».

Смежные вопросы