欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

sqlserver 临时表创建 查询 删除

程序员文章站 2022-05-21 19:40:42
...
sqlserver 临时表创建 查询 删除
create table temptablename
(
id int identity (1,1) not null,
a1 varchar(50),
a2 varchar(50),
a3 varchar(50),
primary key (id) --定义id为临时表#tmp的主键
)

select [字段1,字段2,...,] into #tmp from table


查询临时表的数据 select * from #tmp


删除临时表 drop table #tmp

创建一个不被自动回收的全局临时表。没有经过测试,虽然貌似看上去没啥意义,和常规表有什么区别?说不定以后有用,所以还是记下来:

use master;
go
if object_id('dbo.sp_globals') is not null
drop proc dbo.sp_globals
go
create proc dbo.sp_globals
as
create table ##globals
(
id varchar(36) not null primary key
value varchar(500)
)
go
↑sp内容

exec dbo.sp_procoption 'dbo.sp_globals','startup','true';

只有显示删除##globals才会被清除


注明
本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 sql server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 sql server 断开连接时被删除。


表变量相当于ado的recordset,速度比临时表快得多。
表变量不能用在下列语句中:

insert into table_variable exec 。
select select_list into table_variable 语句。

在定义 table 变量的函数、存储过程或批处理结束时,自动清除 table 变量。
但临时表支持。
.表变量速度比临时表快得多(如果内存足够)
如果数据量不大: