注册 登录
编程论坛 SQL Server论坛

介绍一下临时表怎么用

dddivan 发布于 2007-07-25 11:37, 863 次点击
临时表是什么概念,语法是什么,在什么情况下使用?
说的具体点好吗?
谢谢~~

[此贴子已经被作者于2007-7-25 14:07:01编辑过]

7 回复
#2
system322007-07-25 21:10

临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。

临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

例如,如果创建了 employees 表,则任何在数据库中有使用该表的安全权限的用户都可以使用该表,除非已将其删除。如果数据库会话创建了本地临时表 #employees,则仅会话可以使用该表,会话断开连接后就将该表删除。如果创建了 ##employees 全局临时表,则数据库中的任何用户均可使用该表。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果您创建该表后另一个用户在使用该表,则 SQL Server 将在您断开连接并且所有其他会话不再使用该表时将其删除。

#3
system322007-07-25 21:11

select * FROM [已有的表] INTO #A

INTO 放后面

#4
boboxiong2007-07-29 15:49
INTO整出来的都是临时表吗?
#5
fqbnet20082007-07-30 09:47
是的,都是,要注意 into后面的表名不能和数据库中其他的表名重复就行了 。
#6
dddivan2007-08-06 16:29

嗯,谢谢各位~~~

#7
Kendy1234562007-08-07 16:37
5楼胡说... 不是Into出来的都是临时表 而是#号打头的会被SQL解析为临时表

临时表和表的区别就在于#号 其它都一样 临时表同样可以declare 声明 可以insert 可以alter 可以drop 使用起来没有任何分别. 但是仅仅存在于本连接中,也就是其它人无法访问到你的临时表数据

在数据库连接关闭的时候 SQL会把临时表给释放
#8
西风独自凉2007-08-07 19:19
临时表不可能以非临时表名相同....# or ## 是临时表的标志....
.而非临时表无此标志
1