加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL 2008中TEMPORARY TABLE和TABLE VARIABLE有什么区别?

发布时间:2020-12-12 08:45:17 所属栏目:MsSql教程 来源:网络整理
导读:有什么区别: CREATE TABLE #temp ( [ID] INT)INSERT INTO #tempSELECT ... 和 DECLARE @temp TABLE ( [ID] INT)INSERT @tempSELECT ... 在SQL Server 2008中? 解决方法 临时表格与大多数特性中的普通表格类似,除了进入TempDB而不是当前的数据库,它们在有限
有什么区别:
CREATE TABLE #temp ( [ID] INT)

INSERT INTO #temp
SELECT ...

DECLARE @temp TABLE ( [ID] INT)

INSERT @temp
SELECT ...

在SQL Server 2008中?

解决方法

临时表格与大多数特性中的普通表格类似,除了进入TempDB而不是当前的数据库,它们在有限的范围之后消失(取决于它们是基于会话还是全局Temp表,但Temp表中数据的所有更改都是记录到事务日志中,具有所需的所有性能影响.otoh,您还可以像普通表一样添加任意数量的索引或视图,触发器或任何您想要的临时表.

表变量是一种快速内存表(它们也使用临时数据库).对它们的更改不会被记录(这样可以提高性能).但是您只能在其上获得一个索引(因为索引不能在初始声明语句之后创建,所以您可以在表变量上创建的唯一索引是可以包含在初始表变量声明中的索引…

Declare @Tab Table (myKey integer Primary Key Not Null,data varchar(20))

由于这些特性,临时表格是较大的表(宽和多行)的更好选择,和/或在其生命周期内将经历多个访问模式,而当您需要非常窄的表格时,表格变量最好(键只表,或键只有一个数据列),这将永远被索引的密钥访问…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读