Временные таблицы в sql-сервере
Я работаю над созданием временных таблиц в sql-сервере. Я создал временную таблицу успешно, но когда я пытаюсь просмотреть данные, она говорит INVALID OBJECT NAME.
Может ли кто-нибудь рассказать врагу, как долго существуют временные таблицы?
Если я зарегистрирован на сервере sql, так как userid - devloper и pwd = 0999, а другой человек также входит в систему на сервере sql с одинаковыми учетными данными, эти временные таблицы будут удалены?
мой sql выглядит следующим образом:
SELECT net_node_model.SYS_ID, net_node_model.NODE, mst_temp_equation.TEMP_ID,
mst_temp_equation.EQ_ID
INTO ##NT_MASTER_TEMP_EQUATION
FROM mst_temp_equation INNER JOIN
net_node_model ON mst_temp_equation.TEMP_ID = net_node_model.TEMP_ID
GROUP BY net_node_model.SYS_ID, net_node_model.NODE, mst_temp_equation.TEMP_ID,
mst_temp_equation.EQ_ID, mst_temp_equation.EQ_NAME,
mst_temp_equation.EQ_TYPE, mst_temp_equation.[OBJECT],
mst_temp_equation.VAR_TYPE, mst_temp_equation.VAR_NAME,
mst_temp_equation.VAR_SUBSET, mst_temp_equation.VAR_SET,
mst_temp_equation.RHS_RELN, mst_temp_equation.RHS_OBJECT,
mst_temp_equation.RHS_VAR_SET, mst_temp_equation.RHS_VAR_SUBSET,
mst_temp_equation.RHS_VAR_TYPE, mst_temp_equation.RHS_VAR_NAME,
mst_temp_equation.EQ_TP_OFFSET, mst_temp_equation.RHS_TP_OFFSET,
mst_temp_equation.RETAIN, mst_temp_equation.TIME_PRD,
mst_temp_equation.EQ_VAR_SUBTYPE, mst_temp_equation.RHS_VAR_SUBTYE;
Ответы
Ответ 1
Если вы используете регулярную временную таблицу #table
, она не будет видна ни одному другому сеансу, кроме того, на котором она была создана. После завершения этой сессии таблица будет удалена.
Если вы используете глобальную временную таблицу ##table
, она будет видна другим сеансам.
От MSDN - CREATE TABLE
в разделе temporary tables
:
Глобальные временные таблицы автоматически удаляются, когда сеанс, который создал таблицу, заканчивается, и все остальные задачи перестали ссылаться на них.
Ответ 2
Вы говорите, что вы уже создали таблицу ## NT_MASTER_TEMP_EQUATION и теперь пытаетесь вставить в нее? Если это так, используйте синтаксис INSERT INTO ##NT_MASTER_TEMP_EQUATION SELECT ...
вместо того, что у вас есть.
SELECT ... INTO ##temp FROM ...
используется для создания таблицы и заполнения ее.
Кроме того, у вас есть жулик ,
в конце вашего списка SELECT
(непосредственно перед ключевым словом INTO
). Это нужно удалить.
Ответ 3
Если это точный запрос, который вы использовали, то я думаю, что у вас может быть синтаксическая ошибка в первой строке, похоже, что перед ключевыми словами INTO
есть дополнительная запятая,
...mst_temp_equation.EQ_ID, INTO ##NT_MASTER_TEMP_EQUATION
^
Не уверен, что это вызывает ошибку INVALID OBJECT NAME или нет