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。
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。
解决方案 »
- Hibernate学习笔记(一)--数据库事务与并发
- sql server 2000 导出到其它电脑的 sql server 2000 中主键丢失怎么办?
- 求一SQL语句
- 递归返回结果显示,求sql或者思路,谢谢!
- 请问,能不能既保留主键又不在主键上建立聚簇索引?
- 请教,想把a表中的仓库跟b表中的仓库相等但是货号不等的记录显示出来?
- 如何删除表中的字段呢!
- DTS导入到处向导错误:错误源:Microsoft OLE DB for SQL Server 错误描述: Create DATABASE 失败.未能创建所列出的某些文件名.请检查前
- 怎么用视图把数据由正常的已行显示改为已列显示?(在线等待:怎么给答复人给分)
- 服务器名
- 初学者问题之二:ODBC添加数据源问题.
- N_chow(一劍飄香++)来拿分,这里是100分
我按你的方法,建立了#bb,可是在tempdb中还是没有找到,可是再重新建立时,提示表已经存在,可是又找不到,真奇怪!
用select * from tempdb.dbo.sysobjects where name like '#bb%'应该能找到。
tempdb在企业管理器里永远都看不到表。
#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的查询器,该临时表马上就消失了...
临时表
也可以创建临时表。临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft® SQL Server™ 2000 实例断开连接时被删除。全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。例如,如果创建名为 employees 的表,则任何人只要在数据库中有使用该表的安全权限就可以使用该表,除非它已删除。如果创建名为 #employees 的本地临时表,只有您能对该表执行操作且在断开连接时该表删除。如果创建名为 ##employees 的全局临时表,数据表中的任何用户均可对该表执行操作。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果该表在您创建后有其他用户使用,则 SQL Server在所有用户断开连接后删除该表。