SQL Server表变量与临时表的区别

发布时间:2020-09-30编辑:脚本学堂
为大家介绍下sql server中表变量与临时表在用法上的区别,用来了解与学习sql临时表的操作,还是不错的。

在sql server中表变量创建的语法类似于SQL。

Server临时表,区别就在于创建时,必须要为之命名。

表变量是变量的一种,表变量也分为本地及全局的两种,本地表变量的名称都是以“@”为前缀,只有在本地当前的用户连接中才可以访问。

全局的表变量的名称都是以“@@”为前缀,一般都是系统的全局变量,像常用到的,如@@Error代表错误的号,@@RowCount代表影响的行数。

创建表变量的语句:
 

复制代码 代码示例:
DECLARE @News Table ( News_id int NOT NULL,
NewsTitle varchar(100), NewsContent varchar(2000), NewsDateTime datetime )

比较临时表及表变量都可以通过SQL的选择、插入、更新及删除语句,它们的的不同主要体现在:
1)、表变量是存储在内存中的,当用户在访问表变量时,SQL Server是不产生日志的,而在临时表中是产生日志的;

2)、在表变量中,是不允许有非聚集索引的;

3)、表变量是不允许有DEFAULT默认值,也不允许有约束;

4)、临时表上的统计信息是健全而可靠的,但是表变量上的统计信息是不可靠的;

5)、临时表中是有锁的机制,而表变量中就没有锁的机制。

>>> 您可能感兴趣的文章:
sql server 表变量与临时表
sql 表变量与临时表的实例解析
Sql Server遍历表记录的二种方法(表变量与游标)