2013-09-19 2 views
4

Мне было интересно, в чем разница между этими двумя сценариями?MS SQL Временная таблица

SELECT * FROM ##TEMP 

и это

SELECT * FROM #TEMP 
+0

Пожалуйста, скачайте его перед тем, как вы спросите http://stackoverflow.com/questions/2219714/sql-server-tables-what-is-the-difference-between-and –

ответ

10

##TEMP глобальная временная таблица, #TEMP является локальным.

Локальные временные таблицы видны только их создателям при том же соединении с экземпляром SQL Server, что и при создании или ссылке таблиц. Локальные временные таблицы удаляются после отключения пользователя из экземпляра SQL Server.

Глобальные временные таблицы видны любому пользователю и любому соединению после их создания и удаляются, когда все пользователи, ссылающиеся на таблицу, отключаются от экземпляра SQL Server.

см. documentation.

На самом деле здесь почти такой же вопрос с ответом - Local and global temporary tables in SQL Server.

+0

@dave добавили некоторые пояснения, проверьте ссылку на аналогичный вопрос –

+0

А я вижу ... теперь я знаю ... спасибо! – illumi

1

Первый (## TEMP) является глобальным - любой пользователь может получить доступ к его контенту, а также выполнять различные сеансы (подумайте о вкладках в SQL Server Management Studio). Другое видно только вам.

1

## - это глобальные таблицы, которые видны всем и удаляются, когда все соединения, ссылающиеся на них, закрыты.

# - это локальные таблицы, которые видны только соединению, которое его создало, и удаляются после отсоединения соединения.

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