临时表位于何处?

时间:2011-02-03 12:04:47

标签: sql sql-server sql-server-2005 sql-server-2008

如果我使用#sign:

创建临时表
SELECT * INTO #temp FROM dbo.table

此表位于何处?我无法从tempdb中找到它。

5 个答案:

答案 0 :(得分:7)

tempDB中创建了 这些表格,但表格名称可能与您定义的完全不同。

在我的情况下,我得到:

#temp______________________________000000000003

试试这个:

SELECT * INTO #temp FROM dbo.table
SELECT * FROM tempdb.sys.tables

您应该看到刚刚创建的临时表的条目....

答案 1 :(得分:1)

当您声明临时表时,SQL Sever会在其名称上添加一些其他字符,以便为其提供唯一的系统名称,然后将其存储在sysobjects表中的 tempDB 中。即使您可以使用其逻辑名称查询临时表,也可以在内部知道SQL Server已设置的确切名称。

答案 2 :(得分:0)

你是如何找他们的? 如果您选择了,您将获得数据。 但该表仅在会话中可用,仅适用于创建它的用户(您可以拥有全局临时表)。

它们存储在temp db。

答案 3 :(得分:0)

可以使用表名之前的哈希(#)符号创建本地临时表。

它们仅在当前连接中可见。当连接断开时,其范围也会结束。

可以在两个不同的连接中同时创建和使用具有相同名称的本地临时表。

阅读更多

http://sqlnetcode.blogspot.com/2011/11/there-is-already-object-named-temp-in.html

答案 4 :(得分:0)

我怀疑这个问题源于以下事实:如果您不右键单击并刷新“临时表”文件夹,SSMS将不会立即向您显示临时表。