本文主要介绍sql临时表的使用总结,有需要的朋友可以参考一下。
1、创建方法:
方法1:
创建表TempTableName
或者
选择[字段1,字段2,]到临时表名
方法二:
创建表tempdb。MyTempTable(Tid int)
描述:
(1)临时表实际上是数据库tempdb中的用户表;
(2)、TempTableName必须有“#”。“#”可以是一个或两个以#(本地)或# #(全局)开头的表。此类表在会话期间存在,并将在会话结束时自动删除;
(3)如果命名为tempdb。TempTable而不是#或# #创建时,该表可以一直存在,直到数据库重新启动。
2、手动删除
删除表TempTableName
描述:
DROP TABLE语句显式移除临时表,否则临时表将在退出其作用域时被系统自动移除:
(1)当存储过程完成时,在存储过程中创建的本地临时表将被自动删除。由创建该表的存储过程执行的所有嵌套存储过程都可以引用该表。但是调用创建该表的存储过程的进程不能引用该表;
(2)所有其他本地临时表在当前会话结束时被自动移除;
(3)当创建该表的会话结束并且其他任务停止引用它时,全局临时表被自动移除。仅在单个Transact-SQL语句的生存期内维护与任务表的关联。换句话说,当创建全局临时表的会话结束时,引用该表的最后一条Transact-SQL语句将自动删除该表。
3、示例代码
(1)创建
使用testdb
-创建本地临时表。
创建表#tmpStudent(Tid int,Name varchar(50),Age int)
插入到# tmp学生值(王晓,25)
select * from #tmpStudent
-创建本地临时表的另一种方法
select * into来自学生的#tmpStudent
select * from #tmpStudent
第二种创作方法:
创建Tempdb。我的Temptable(Tidint)-你只有拥有相应的权限才能写这个。
(2)删除
删除表#tmpStudent
关于sql中临时表的生命周期
1.本地临时表(以#开头)只对当前连接有效,当前连接断开时会自动删除。
2.全局临时表(以# #开头)对其他连接也有效,当当前连接和其他访问过它的连接断开时,会自动删除。
3.无论本地临时表还是全局临时表,只要连接有访问权限,就可以用drop table #Tmp(或drop table ##Tmp)显式删除。