Обязательно ли использовать #
перед созданием временной таблицы на SQL сервере?
Пример:
SELECT column1, column2, someInt, someVarChar
INTO ItemBack1
FROM table2
WHERE table2.ID = 7
Для ItemBack1 нужно ли использовать #
символ?
Если нет, то какой смысл #
в создании временных таблиц?
Ответы:
Да. Для создания временных таблиц необходимо добавить к имени таблицы префикс "#" (хеш).
Если в дальнейшем таблица вам НЕ понадобится, создайте ее. Временные таблицы очень похожи на обычные таблицы. Однако он создается в базе данных tempdb. Кроме того, он доступен только через текущий сеанс, т.е. для EG: если другой пользователь попытается получить доступ к созданной вами временной таблице, он не сможет это сделать.
«##» (двойной хеш создает «глобальную» временную таблицу, к которой могут обращаться и другие сеансы.
См. Приведенную ниже ссылку для ознакомления с основными сведениями о временных таблицах: 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
источник
Разница между этими двумя столами
ItemBack1
и#ItemBack1
в том , что в первую очередь на является постоянной (постоянное) , где , как и другие временно.Теперь, если взглянем на свой вопрос еще раз
Ответ - Да , потому что без этого предшествующая
#
таблица не будет временной таблицей, она не будет зависеть от всех сеансов и областей.источник