临时表
1、存储在tempdb中,类似于表的定义,即可以创建约束、索引、定义统计、主键和外键等,对临时表的操作,系统会产生并记录日志。临时表中同样存在锁的机制
2、临时表分为本地和全局两种:本地临时表格式是以 # 前缀的,创建临时表的链接断开,临时表即消亡,也可以手动 drop 掉临时表。最好能手动 DROP一次。
3、全局临时表是以 ## 前缀的,只有全部链接到全局临时表上的链接断开,全局临时表才消亡。
4、如果存储过程中含有临时表,则 该存储过程不会被预编译。
5、临时表创建格式为 create table #tablename(...)
create table #tmp(id int identity(1,1) primary key,code varchar(32) default('123add'))
create nonclustered index idx_code_tmp on #tmp(code)
--select * from sys.indexes
--order by type_desc desc,object_id
表变量
1、存储在内存中,表变量也存在 本地和全局 两种。
本地表变量 以 @前缀,只有在本地当前的用户连接中才可以访问。
全局表变量 以@@前缀,一般都是系统的全局变量(比如 @@error,@@rowcount 等)。
表变量中没有锁的机制。
2、表变量不能有非聚簇索引。表变量被访问使用的时候,系统是不产生日志记录的。表变量不存在默认值和约束
3、如果存储过程中含有表变量,则该存储过程是会呗预编译的。
表变量创建格式 declare @tablename table (id int primary key,code varchar(32))
表变量和临时表的区别
最新推荐文章于 2020-10-16 14:04:05 发布