临时表有两种类型:
本地临时表
以一个井号 (#) 开头的那些表名。只有在创建本地临时表的连接上才能看到这些表,链接断开时临时表即被删除(本地临时表为创建它的该链接的会话所独享)或者这样说局部临时表是有当前用户创建的,并且只有当前用户的会话才可以访问。
全局临时表
以两个井号 (##) 开头的那些表名。在所有连接上都能看到全局临时表或者这样说只要这个全局临时表存在,那么用户创建会话后对所有的用户都是可见的。如果在创建全局临时表的连接断开前没有显式地除去这些表,那么只要所有其它任务停止引用它们,这些表即被除去。当创建全局临时表的连接断开后,新的任务不能再引用它们(换句话说旧的任务还何以引用)。当前的语句一执行完,任务与表之间的关联即被除去;因此通常情况下,只要创建全局临时表的连接断开,全局临时表即被除去。
有以下方法可以创建
1)显示地Creat table,如:
create table #tbl_Line(line varchar(10))
insert into #tbl_Line(line)
select distinct ltrim(rtrim(line_no))
from tbl_pas_scan_seq
where to_wc='A201'
这种方式的好处在于,可自行控制临时表的结构。
2)用select into table,在建立的同时批量写入数据,如:
select distinct ltrim(rtrim(line_no)) into #tbl_Line
from tbl_pas_scan_seq
where to_wc='A201'
这种方式的好处在于快捷,临时表结构依赖于From子句中的相应表和字段,当然select 子句中对字段的处理也会有影响。
3) 利用with语句(sql server 2005+版本)
with test(bucode, bunamech)
as
(
select buCode,bunamech from pubBU
)
select * from TEST --- 此时的test就是临时表,后续语句可以直接引用
MySQL云数据库创建、配置与使用教程,五秒钟创建属于自己的mysql云数据库,申请地址:xmjar.cn
--创建临时表
CREATE TABLE #A (STUNO VARCHAR(10),DAYTIME VARCHAR(10))
--使用临时表
INSERT INTO #A VALUES ('张三','2011-03-05')
INSERT INTO #A VALUES ('王五','2011-03-05')
INSERT INTO #A VALUES ('张三','2011-03-06')
INSERT INTO #A VALUES ('赵六','2011-04-07')
INSERT INTO #A VALUES ('李四','2011-04-08')
INSERT INTO #A VALUES ('张三','2011-03-08')
SELECT * FROM #A
--还有一种创建方式
SELECT * INTO #B FROM #A--这里创建的临时表#B不用上面的定义 可以直接使用就能将其他表的数据插入这个临时表#B中
SQL Server 临时表
http://hi.baidu.com/wangzhiqing999/blog/item/b24e3b1c429c1e0934fa4151.html
Oracle 临时表
http://hi.baidu.com/wangzhiqing999/blog/item/b390c139012393e03c6d9756.html
MySQL 临时表
http://hi.baidu.com/wangzhiqing999/blog/item/95b733c8d97a1e1f00e92846.html
create table #lsb(a nvarchar(3), b int)
declare @lsb table (.......)
和普通表使用一样