sqlserver 变量
变量:
分为全局变量和局部变量
全部变量:以@@声明,为系统变量,所有实例都能访问,用户只能访问,不能赋值
局部变量:生命周期只在一个批处理内有效,
局部变量经常使用的三种用途:
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 变量的更多相关文章
- SqlServer变量
MySql变量 => https://www.cnblogs.com/fanqisoft/p/10700669.html 全局变量 局部变量 ⒈全局变量 以@@开头,后面跟相应的字符串,全局变量 ...
- sqlserver变量的生周期
在声明一个变量后,一旦遇到分号或者go,生命周期就结 DECLARE @num1 int --go ; --go print @num1; --print @num1:
- SQLServer —— 变量的使用
一.局部变量的定义与赋值 定义语法: -- 声明一个局部变量 DECLARE @变量名 数据类型 -- 声明多个局部变量 DECLARE @变量名1 数据类型1, @变量名2 数据类型2 赋值语法: ...
- SQlServer 变量定义 赋值
declare @id int declare @name char(10) ;注意:char(10)为10位,要是位数小了会让数据出错 set @id=1 select @id=1 select @ ...
- SQLSERVER存储过程语法详解
CREATE PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ...
- SQL 使用触发器常见错误
今天做代码审查时,看见以下一段触发器的创建脚本,我们一起来分析一下 create trigger [trigger_puClassRoomType] on [dbo].[puClassRoomType ...
- 6 小时 Python 入门
6 小时 Python 入门 以下操作均在 Windows 环境下进行操作,先说明一下哈 一.安装 Python 1.官网下载 Python 进入官网(https://www.python.org), ...
- sqlserver 视图能否有变量
不能,sqlserver 视图一般不能有变量,也不能带存储过程
- sqlserver中表变量和变量表之间区别
sqlserver中表变量和变量表之间区别
随机推荐
- 卸载redhat6.5的yum,安装centos6的yum,配置第三方yum源
**redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,重启安装其他yum源,再配置其他源.** 本文包括配置本地源及第三方源.第三方源包括:网 ...
- HDU2686-Matrix & HDU3376-Matrix Again(费用流)
比较简单的题了. 只需从左上角到右下角找两条路就可以了. 因为每个点只能走一次,所以拆点,限制流量为1. 因为求的是最大值,所以权值取反求最小值. 因为第一个点和最后一个点经过两次,只算一次,最后要减 ...
- cache 的简单认识与思考
之前对NOSQL的总结是:基本功能是key-value, 然后各自附加特殊功能. 现在简单的来认识一下cache. 背景 大家都知道NoSQL, 大多数都是 key-value 型的数据库.有些内存型 ...
- hdoj 2098 分拆素数和
分拆素数和 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 【P3O是什么】P3O认证之项目组合、项目群和项目办公室
如何区分项目组合办公室与项目群和项目办公室? P3O®(Portfolio,Programmed and Project Offices-项目组合.项目群和项目办公室)是由英国商务部 OGC 于200 ...
- 【Away3D代码解读】(四):主要模块简介
数据模块: Away3D中最核心的数据类是Mesh类,我们先看看Mesh类的继承关系: NamedAssetBase:为对象提供id和name属性,是Away3D大部分类的基类: Object3D:3 ...
- Java/Andriod- 使用Eclipse搭建环境
从网上找来的,做了一点小修改,我自己试了一下,1.3步骤我没去做,最后也不影响. 在开始Android开发之旅启动之前,首先要搭建环境,然后创建一个简单的HelloWorld.本文的主题如下: 1.环 ...
- HALCON 简介
HALCON windowssolarisgccdelphilinux图像处理 ·满足您各类机器视觉应用需求的完善的开发库 ·包含匹配,识别,定位及1D,2D,3D测量等多种高级算法 ·强大,易用 ...
- 64位Ubuntu配置android环境报错(...adb": error=2, 没有那个文件或目录)
Failed to get the adb version: Cannot run program "/home/jayhomzhou/android/android-sdk/platfor ...
- nape.geom.MarchingSquares
Nape中的MarchingSquares类很简单,只有一个静态函数run,不过这对绘制那些简单的形状来说,已经足够了(当然MarchingSquares能做的不只这些).下面是这个run方法的结构: ...