2014-01-09 5 views
25

Не могли бы вы объяснить разницу между #temptable и ## TempTable на сервере MSSQL. Я обдумал это, но не могу.Разница между #temptable и ## TempTable?

Пожалуйста, помогите мне об этом

+0

Спасибо всем за ваши ответы. Я получил четкое представление об этом сейчас. –

+1

Один из них - CamelCase, а другой - строчный – DaveBoltman

ответ

29

Локальные временные таблицы

Локальные временные таблицы доступны только для текущего соединения для пользователя; и они автоматически удаляются, когда пользователь отключает от экземпляров. Локальное временное имя таблицы отображается с хешем ("#") .

Пример:

CREATE TABLE #LocalTempTable(
UserID int, 
UserName varchar(50), 
UserAddress varchar(150)) 

объем локальной временной таблицы только ограниченная с текущего подключения текущего пользователя.

Глобальные временные таблицы

Global Temporary имя таблицы начинается с двойной хэш ("##"). Однажды эта таблица была создана путем соединения, как постоянная таблица. затем доступен любому пользователю по любому соединению. Это может быть только , если все соединения были закрыты.

Пример:

CREATE TABLE ##NewGlobalTempTable(
UserID int, 
UserName varchar(50), 
UserAddress varchar(150)) 

Глобальные временные таблицы видны всех соединений SQL Server. Когда вы создаете один из них, все пользователи могут видеть это.

Vignesh вы можете узнать больше об этом here

4

`#table относится к локальным (виден только пользователю, который его создал) временную таблицу.

'## table ссылается на глобальную (видимую для всех пользователей) временную таблицу.'

3

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

Taken from here

More on this

3

Вот еще один быстрый обозревает из SQL временных таблиц, если бы Google, вы могли бы получить, чтобы узнать больше об этом

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

Локальные таблицы темп доступны только для текущего соединения для пользователя; и они автоматически удаляются, когда пользователь отключается от экземпляров. Локальное временное имя таблицы отображается с символом «хэш» («#»).

Global Temp Таблица

Global Temporary имя таблицы начинается с двойной хэш ("##"). После того, как эта таблица была создана соединением, как постоянная таблица, она доступна любому пользователю любым подключением. Его можно удалить только после того, как все соединения были закрыты.

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

Временная таблица с конкретным ID

enter image description here

При создании таблицы Temp, SQL сервер создает имя таблицы наряду с конкретным ID, так что он не будет сталкиваться с другой ИмяТаблицей Таблицы

primarily sourced from

+0

ваш ответ очень похож на мой –

+2

, потому что ** вы и я ** украли из той же статьи brotha;), но я предлагаю, чтобы вместо моего собственного слова, потому что 'Abhijit Jana' Оригинальный автор объяснил очень просто, чем я хотел бы;) – Kirk

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