Sql server 2008, временные таблицы уникальны

В моем серверном коде я создаю временную таблицу (с именем #temp), вставляю некоторые данные и затем удаляю временную таблицу. Если бы более 1 пользователя запускали этот раздел кода (создание временной таблицы) одновременно, создавал бы sql server 2008 временную таблицу для каждого пользователя или одну «глобальную» временную таблицу? Если это одна таблица, я предполагаю, что столкнусь с проблемами, если одна и та же таблица будет создана более одного раза?


person Eminem    schedule 04.07.2012    source источник


Ответы (1)


Из MSDN:

Вы можете создавать локальные и глобальные временные таблицы. Локальные временные таблицы видны только в текущем сеансе, а глобальные временные таблицы видны для всех сеансов
...
Если локальная временная таблица создается в хранимой процедуре или приложении, которые могут выполняться одновременно для нескольких пользователей компонент Database Engine должен уметь различать таблицы, созданные разными пользователями. Компонент Database Engine делает это путем внутреннего добавления числового суффикса к каждому имени локальной временной таблицы. Полное имя временной таблицы, хранящейся в таблице sysobjects в tempdb, состоит из имени таблицы, указанного в операторе CREATE TABLE, и сгенерированного системой числового суффикса. Чтобы разрешить использование суффикса, table_name, указанное для локального временного имени, не может превышать 116 символов.

person MartW    schedule 04.07.2012
comment
Также из MSDN: префикс имен локальных временных таблиц с помощью знака единого числа (#table_name) и префикс имен глобальных временных таблиц с помощью знака двойного числа (## table_name). - person Eminem; 04.07.2012