变量:
分为全局变量和局部变量
全部变量:以@@声明,为系统变量,所有实例都能访问,用户只能访问,不能赋值
局部变量:生命周期只在一个批处理内有效,

局部变量经常使用的三种用途:
1 在循环语句中记录循环的次数或者用户控制循环的次数
2 用于控制流程走向 比如 if (@i =1)
3 存储 存储过程或者函数的返回值
注意:局部变量声明的类型不能为 text ntext image,
当对于字符型变量只提供数据类型没有提供数据长度时,默认为1,
一切只声明没有赋值的局部变量的初始值都为 NULL

局部变量的赋值:
可以使用set 或者Select实现
二者区别:
在 T-sql中,select支持多个变量赋值,每个变量的赋值用逗号分隔
set只支持一次对一个变量赋值

使用set进行赋值时,当表达式返回多个值,则报错,
而使用select在赋值表达式返回多个值时,取最后一个

当表达式未返回值时:

使用set对局部变量赋值时:如果赋值表达式未返回值,则局部变量变为null
而select对表达式赋值时,如果表达式未返回值,则局部变量保持原值

局部表变量:
局部表变量是一个特殊的局部变量,和临时表不同,局部表变量具有一切局部变量的特点,在查询中,因为局部表变量是存在内存中,而不是硬盘中,

所以速度会远远快于临时表或者实际表,局部表变量最多的使用是在查询中充当多个表做连接时候的中间表

声明一个表变量:

DECLARE @TempTable TABLE
(
NAME NVARCHAR()
Age INT
)

注意:使用临时表的时候,可以考虑使用表变量,这样可以大大提高性能

sqlserver 变量的更多相关文章

  1. SqlServer变量

    MySql变量 => https://www.cnblogs.com/fanqisoft/p/10700669.html 全局变量 局部变量 ⒈全局变量 以@@开头,后面跟相应的字符串,全局变量 ...

  2. sqlserver变量的生周期

    在声明一个变量后,一旦遇到分号或者go,生命周期就结 DECLARE @num1 int --go ; --go print @num1; --print @num1:

  3. SQLServer —— 变量的使用

    一.局部变量的定义与赋值 定义语法: -- 声明一个局部变量 DECLARE @变量名 数据类型 -- 声明多个局部变量 DECLARE @变量名1 数据类型1, @变量名2 数据类型2 赋值语法: ...

  4. SQlServer 变量定义 赋值

    declare @id int declare @name char(10) ;注意:char(10)为10位,要是位数小了会让数据出错 set @id=1 select @id=1 select @ ...

  5. SQLSERVER存储过程语法详解

    CREATE PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ...

  6. SQL 使用触发器常见错误

    今天做代码审查时,看见以下一段触发器的创建脚本,我们一起来分析一下 create trigger [trigger_puClassRoomType] on [dbo].[puClassRoomType ...

  7. 6 小时 Python 入门

    6 小时 Python 入门 以下操作均在 Windows 环境下进行操作,先说明一下哈 一.安装 Python 1.官网下载 Python 进入官网(https://www.python.org), ...

  8. sqlserver 视图能否有变量

    不能,sqlserver 视图一般不能有变量,也不能带存储过程

  9. sqlserver中表变量和变量表之间区别

    sqlserver中表变量和变量表之间区别

随机推荐

  1. CM 部署bigdata测试环境群集机器报错

    CM repo库info;

  2. HDU5739-Fantasia(tarjan求割点)

    题意:给一个无向图n个点1~n,m条边,sigma(i*zi)%(1e9+7).zi是这个图删掉i点之后的价值.一个图的价值是所有连通子图的价值之和,连通图的价值是每个点的乘积. 题解:讲道理这题不算 ...

  3. 获取本机IP地址和MAC地址

    unit NetFunc; interface uses SysUtils, Windows, dialogs, winsock, Classes, ComObj, WinInet, Variants ...

  4. 转载ASP.net 中 OutputCache 指令各个参数的作用

    使用@ OutputCache指令 使用@ OutputCache指令,能够实现对页面输出缓存的一般性需要.@ OutputCache指令在ASP.NET页或者页中包含的用户控件的头部声明.这种方式非 ...

  5. STM32 SysTick定时器应用【worldsing笔记】

    SysTick是CM内核独立的定时器,时钟可以用内核内部的,也可以用芯片厂家(ST)的时钟,参考<Cortex-M3权威指南>的第13章: 另外也可以考<STM32F10xxx Co ...

  6. 多线程基础及实例(java)

    前言: 每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程.线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行.也可以把它理解为代码运行的上下文.所以线程基本上是轻量级的进程 ...

  7. 感动前行——给医学媳妇写的演讲稿(非IT类)

    感动前行 我是一个平庸的人,走在人群中大家可能不能辨别出我.我是一个平庸的人,每天上班.工作.吃饭.睡觉.我是一个平庸的人,来了医院多半年也仅仅和检验科的同事相对照较熟悉,其它科室人员非常少有交流. ...

  8. CentOS 6.5安装TortoiseSVN svn client

    TortoiseSVN: TortoiseSVN 是 Subversion 版本号控制系统的一个免费开源client,能够超越时间的管理文件和文件夹. 文件保存在中央版本号库,除了能记住文件和文件夹的 ...

  9. Codeforces Round #324 (Div. 2) C. Marina and Vasya 贪心

    C. Marina and Vasya Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/pr ...

  10. TigerDLNA for ios 集成Tlplayer

    好久没有写博客了,这次带着TigerDLNA for ios 跟大家见面 什么都不说先上图 1.优点 优点由于libTigerDLNA使用uiview封装,所以大家可以很方便的集成到自己的项目中.由于 ...