微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

有什么区别:
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))

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

原文地址:https://www.jb51.cc/mssql/75483.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐