编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

SQL Server表变量定义及概述

变量分为表变量和标量,表变量是变量的一种,变量都是以@或@@为前缀的,那么什么是标量?可以理解为标准数据类型的变量,比如整型int或者日期型DateTime。

SQL Server临时表的定义类似,以一个@为前缀的表变量是本地的,因此只有当前用户会话才可以访问,而已两个@为前缀即@@的表变量是全局的,通常都是系统变量,比如代表最近的一个T-SQL语句报错号的@@error。表变量只能在一个批处理中生成,超出了这个边界表变量就不存在了。

表变量存放在内存中,因此用户访问表变量的时候SQL Server是不需要生成日志的。同时变量是不需要考虑其他会话访问的问题,因此也不需要考虑锁机制,对于非常繁忙的系统来说,避免锁的使用可以减少一部分系统负载。

表变量不能创建索引,因此在用户访问表变量的时候也就不存在执行计划选择的问题了,这就意味着编译阶段后就没有优化阶段了。

未经允许不得转载: 技术文章 » 数据库 » SQL Server表变量定义及概述