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
说明:
DROP TABLE 语句显式除去临时表,否则临时表将在退出其作用域时由系统自动除去:
(1)、当存储过程完成时,将自动除去在存储过程中创建的本地临时表。由创建表的存储过程执行的所有嵌套存储过程都可以引用此表。但调用创建此表的存储过程的进程无法引用此表;
(2)、所有其它本地临时表在当前会话结束时自动除去;
(3)、全局临时表在创建此表的会话结束且其它任务停止对其引用时自动除去。任务与表之间的关联只在单个Transact-SQL语句的生存周期内保持。换言之,当创建全局临时表的会话结束时,最后一条引用此表的Transact-SQL语句完成后,将自动除去此表。

3、示例代码

(1)创建

use testdb--创建局部临时表 create table #tmpStudent(Tid int,Name varchar(50),Age int)insert into #tmpStudent values('xiaowang',25)select * from #tmpStudent--创建局部临时表 另一种写法select * into #tmpStudent from studentselect * from #tmpStudent

create table tempdb.MyTempTable(Tid int) --有对应权限才可以这么写

(2)删除

drop table #tmpStudent

关于sql中临时表的生命周期

1.局部临时表(#开头)只对当前连接有效,当前连接断开时自动删除。
2.全局临时表(##开头)对其它连接也有效,在当前连接和其他访问过它的连接都断开时自动删除。
3.不管局部临时表还是全局临时表,只要连接有访问权限,都可以用drop table #Tmp(或者drop table ##Tmp)来显式删除

更多相关文章

  1. SQL Server之JSON 函数详解
  2. MySQL 5.7.9 服务无法启动-“NET HELPMSG 3534”的解决方法
  3. MySQL系列多表连接查询92及99语法示例详解教程
  4. Linux下MYSQL 5.7 找回root密码的问题(亲测可用)
  5. MySQL 什么时候使用INNER JOIN 或 LEFT JOIN
  6. Android异步加载图像小结 (含线程池,缓存方法)
  7. android WebView 图片缩放功能小结
  8. Android(安卓)-- Android(安卓)JUint 与 Sqlite
  9. android中SqLite query中用selectionArgs处理字符传值

随机推荐

  1. form在提交时被取消:因为form没有被连接
  2. 使用表单字段值定制CSS属性。
  3. 使用jQuery和AJAX从JSON文件加载数据
  4. XHTML 相对路径与绝对路径
  5. 15个基于WEB的HTML编辑器
  6. 另一个div内的任意宽度的中心div
  7. css3+html5——拼接图片中icon的使用、照
  8. 认识DHTML中的“行为”组件
  9. 如何从input type = file中删除一个对象?
  10. 如何在jquery中增加itemtype的值?