sql server中的临时表

时间:2011-08-31 14:40:30

标签: sql sql-server

我正在sql server中创建临时表。我成功创建了临时表,但当我尝试查看数据时,它显示为INVALID OBJECT NAME。 任何人都可以告诉敌人临时表存在多长时间? 如果我以userid - devloper和pwd = 0999登录到sql server,而另一个人也登录到具有相同凭据的sql server,这个临时表将被删除吗? 我的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;

4 个答案:

答案 0 :(得分:19)

如果您使用的是常规临时表#table,除了创建它之外的任何其他会话都不会显示它。该会话结束后,该表将被删除。

如果您使用的是全局临时表##table,则其他会话可以看到它。

来自MSDN - CREATE TABLEtemporary tables下:

  

当创建表的会话结束且所有其他任务已停止引用它们时,将自动删除全局临时表。

答案 1 :(得分:0)

您是说您已经创建了## NT_MASTER_TEMP_EQUATION表,现在正在尝试插入吗?如果是这样,请使用语法INSERT INTO ##NT_MASTER_TEMP_EQUATION SELECT ...而不是您拥有的语法。

SELECT ... INTO ##temp FROM ...用于创建表并填充它。


此外,您在,列表末尾(在关键字SELECT之前)有一个流氓INTO。这应该被删除。

答案 2 :(得分:0)

如果这是您使用的确切查询,那么我认为您在第一行可能有语法错误,看起来在关键字INTO之前有一个额外的逗号

...mst_temp_equation.EQ_ID,  INTO ##NT_MASTER_TEMP_EQUATION
                          ^

不确定这是否导致INVALID OBJECT NAME错误

答案 3 :(得分:0)

在这里您似乎已经创建了全局临时表。请注意,当您希望结果集对所有其他会话可见时,全局临时表很有用。无需设置权限。任何人都可以从表中插入值,修改或检索记录。还要注意,任何人都可以删除表。

会话断开连接后,这些表将自动删除。

相关问题