sql2005中临时表#table和表变量@table有什么不同呀?
4个回答
展开全部
我记得以前在哪些地方看到过。
表变量和临时表是两个不同的东西,但是他们是可以用于一些共同的用途的。不过要注意一下使用的场景。
临时表
临时表有两种类型:本地表和全局表。本地临时表的名称都是以“#”为前缀,全局临时表的名称都是以“##”为前缀。临时表的访问是有可能造成物理IO的。临时表可以有索引、数据统计这些。
表变量
表变量是变量的一种,表变量也分为本地及全局的两种。表变量存放在内存中,但是并不是没有限制而是有一定限制的,如果表变量数据量超过阈值,会把内存耗尽,然后使用硬盘空间,这时再访问他就会增加了内存调入调出的机会,反而降低速度。表变量是不能有索引的。
大概就是这些,其他的记不住了。
表变量和临时表是两个不同的东西,但是他们是可以用于一些共同的用途的。不过要注意一下使用的场景。
临时表
临时表有两种类型:本地表和全局表。本地临时表的名称都是以“#”为前缀,全局临时表的名称都是以“##”为前缀。临时表的访问是有可能造成物理IO的。临时表可以有索引、数据统计这些。
表变量
表变量是变量的一种,表变量也分为本地及全局的两种。表变量存放在内存中,但是并不是没有限制而是有一定限制的,如果表变量数据量超过阈值,会把内存耗尽,然后使用硬盘空间,这时再访问他就会增加了内存调入调出的机会,反而降低速度。表变量是不能有索引的。
大概就是这些,其他的记不住了。
展开全部
一个是临时表一个是变量表至于区别就去参照定义吧。根本没有关联的东西你硬要放到一起
临时表在这个会话中存在,而变量是存在你所需要的块中 比如说包啊 过程 函数等中。
临时表在这个会话中存在,而变量是存在你所需要的块中 比如说包啊 过程 函数等中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-11-21
展开全部
临时表在会话中创建,会话结束的时候,数据库自动删除临时表
对于本地临时表 (#开头的) 其他会话无法访问数据与表结构
对于全局临时表 (##开头的) 其他会话可以访问数据与表结构
SQL Server会在会话结束以后,自动删除临时表。
表变量@table 生存周期短一些.
例如在一个存储过程里面定义了表变量
那么存储过程执行完了
出来应该就访问不到这个表变量了
( 这个没有手动测试过, 你可以测试一下看看, 我这个是估计的 )
对于本地临时表 (#开头的) 其他会话无法访问数据与表结构
对于全局临时表 (##开头的) 其他会话可以访问数据与表结构
SQL Server会在会话结束以后,自动删除临时表。
表变量@table 生存周期短一些.
例如在一个存储过程里面定义了表变量
那么存储过程执行完了
出来应该就访问不到这个表变量了
( 这个没有手动测试过, 你可以测试一下看看, 我这个是估计的 )
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根本不是一个概念
你想要了解什麼啊?
你想要了解什麼啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询