临时表分为:
本地临时表,仅限于当前访问者访问,创建方法去如下:
create table #TableName(表结构)
储存于数据库tempdb内(硬盘),当前用户断开连接,自动删除
如果使用中不断开连接,且不需要该临时表请执行:drop table #TableName
全局临时表,所有访问用户访问,创建方法去如下:
create table ##TableName(表结构)
储存于数据库tempdb内,当所有访问用户断开连接,自动删除
删除语句:drop table ##TableName
恩 我觉得应该是在客户的内存中形成的 理论我也不大清楚 给你举个例子吧
SELECT * FROM (SELECT * FROM table_a WHERE column_a=123) new
其中括号里面的就是子查询时形成的临时表 给他取名为new 然后再从这个new表里面查询别的信息
当这个语句结束时 new表就释放掉了 再也无法访问
作用域不同,当你关闭sql连接的时候 临时表就会 自动删除,普通表不会
1、创建方法:
方法一:
create table TempTableName
或
select [字段1,字段2,...,] into TempTableName from table
方法二:
create table tempdb.MyTempTable(Tid int)
说明:
(1)、临时表其实是放在数据库tempdb里的一个用户表;
(2)、TempTableName必须带“#”,“#"可以是一个或者两个,以#(局部)或##(全局)开头的表,这种表在会话期间存在,会话结束则自动删除;
(3)、如果创建时不以#或##开头,而用tempdb.TempTable来命名它,则该表可在数据库重启前一直存在。
2、手动删除
drop table TempTableName
普通表和临时表的区别只是表名开头无 "#"