Нужно ли использовать # для создания временных таблиц на SQL-сервере?

Нужно ли использовать # перед созданием временной таблицы на SQL-сервере?

Пример:

SELECT column1, column2, someInt, someVarChar 
INTO ItemBack1 
FROM table2
WHERE table2.ID = 7

Для ItemBack1 необходимо использовать символ #?

Если нет, то зачем использовать # при создании временных таблиц?

Ответ 1

Да. Вам нужно префикс имени таблицы "#" (хэш) для создания временных таблиц.

Если вам НЕ нужна таблица позже, продолжайте и создайте ее.    Временные таблицы очень похожи на обычные таблицы. Однако он создается в tempdb. Кроме того, он доступен только через текущий сеанс, т.е. Для EG: если другой пользователь пытается получить доступ к созданной вами таблице temp, он не сможет этого сделать.

"##" (double-hash создает глобальную таблицу temp, к которой также могут обращаться другие сеансы.

См. приведенную ниже ссылку на Основы временных таблиц: http://www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005

Если содержимое вашей таблицы меньше 5000 строк и НЕ содержит типы данных, такие как nvarchar (MAX), varbinary (MAX), рассмотрите использование переменных таблицы.

Они являются самыми быстрыми, так как они похожи на любые другие переменные, которые хранятся в ОЗУ. Они также хранятся в tempdb, а не в ОЗУ.

DECLARE @ItemBack1 TABLE
(
 column1 int,
 column2 int,
 someInt int,
 someVarChar nvarchar(50)
);

INSERT INTO @ItemBack1
SELECT column1, 
       column2, 
       someInt, 
       someVarChar 
  FROM table2
 WHERE table2.ID = 7;

Дополнительная информация о переменных таблицы: http://odetocode.com/articles/365.aspx

Ответ 2

Разница между этими двумя таблицами ItemBack1 и #ItemBack1 заключается в том, что первая настойчивая (постоянная), где другая временная.

Теперь, если вы снова посмотрите на свой вопрос

Нужно ли использовать # для создания временной таблицы в sql-сервере?

Ответ Да, потому что без этого предшествующего # таблица не будет временной таблицей, она будет независимой от всех сеансов и областей.