create table bb(
a int,b int)
go
那不会放到tempdb的,放在你的操作的数据库。create table #bb(
a int,b int)
go
会放到tempdb的,但你查出的表名可能是#bb_________________02000064EC之类的。create table ##bb(
a int,b int)
go
会放到tempdb的,而且你查出的表名为##bb。

解决方案 »

  1.   

    to rewiah(乘长风)
    我按你的方法,建立了#bb,可是在tempdb中还是没有找到,可是再重新建立时,提示表已经存在,可是又找不到,真奇怪!
      

  2.   

    你可以察看sysobjectsselect * from tempdb.dbo.sysobjects这里有你的表名的记录。
      

  3.   

    #开头的临时表只属于当前连接,所以为防止重名,加了这个连接的一些信息。
    用select * from tempdb.dbo.sysobjects where name like '#bb%'应该能找到。
    tempdb在企业管理器里永远都看不到表。
      

  4.   

    按 nononono兄和8992026说的方法找!
      

  5.   

    以下是用了select * from tempdb.dbo.sysobjects where name like '#bb%' 命令后的结果:
    #bb___________000000000012 149575571 U  1 2 1610612736 0 0 0 2002-03-27 20:35:34.280 0 0 0 U  1 323 0 2002-03-27 20:35:34.280 0 0 0 0 0 0 0
    可是不清楚它存放在那?
    不管用select * from master.#bb 还是用 select * from tempdb.##bb
    它能显示正确的结果。它是不是根本就不存放在tempdb数据库中,而是存放在内存中,而且一退出SQL的查询器,该临时表马上就消失了...
      

  6.   

    #开头的是本地临时表,断开连接时自动删除。我拷贝一段联机帮助给你参考一下:
    临时表
    也可以创建临时表。临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft® SQL Server™ 2000 实例断开连接时被删除。全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。例如,如果创建名为 employees 的表,则任何人只要在数据库中有使用该表的安全权限就可以使用该表,除非它已删除。如果创建名为 #employees 的本地临时表,只有您能对该表执行操作且在断开连接时该表删除。如果创建名为 ##employees 的全局临时表,数据表中的任何用户均可对该表执行操作。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果该表在您创建后有其他用户使用,则 SQL Server在所有用户断开连接后删除该表。