sql server中的临时表与普通表有什么区别?

sqlserver临时表是什么概念?临时表是存在在服务器的硬盘上还是在服务器的内存中或是客户的硬盘或内存中?听说在存储过程中可以创建和访问临时表,存储过程结束了临时表也就自动释放了,是这样吗?

临时表分为:

本地临时表,仅限于当前访问者访问,创建方法去如下:
create table #TableName(表结构)
储存于数据库tempdb内(硬盘),当前用户断开连接,自动删除
如果使用中不断开连接,且不需要该临时表请执行:drop table #TableName

全局临时表,所有访问用户访问,创建方法去如下:
create table ##TableName(表结构)
储存于数据库tempdb内,当所有访问用户断开连接,自动删除
删除语句:drop table ##TableName
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-29
恩 我觉得应该是在客户的内存中形成的 理论我也不大清楚 给你举个例子吧

SELECT * FROM (SELECT * FROM table_a WHERE column_a=123) new

其中括号里面的就是子查询时形成的临时表 给他取名为new 然后再从这个new表里面查询别的信息
当这个语句结束时 new表就释放掉了 再也无法访问
第2个回答  推荐于2018-01-27
作用域不同,当你关闭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

普通表和临时表的区别只是表名开头无 "#"本回答被网友采纳
相似回答