SQL Server变量
SQL Server变量
SQL Server变量一、SQL Server局部变量
局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部。局部变量可以作为计数器来计算循环执行的次数,或是控制循环执行的次数。另外,利用局部变量还可以保存数据值,以供控制流语句测试以及保存由存储过程返回的数据值等。局部变量被引用时要在其名称前加上标志“@”,而且必须先用DECLARE命令定义后才可以使用。
1、定义局部变量
局部变量由用户定义的,用declare关键字
Declare @variable1 data_type[,@variable2 data_type2,…]
说明
@variable1 为变量名一单个@开头
data_type 为数据类型 可以是系统数据类型 也可以是用户自定义数据类型
例如
(1)、定义单个变量
DECLARE @str VARCHAR(10)
(2)、同时定义多个变量
DECLARE @no_str varchar(8), @birthday_str smalldatetime, @avgrade_num numeric(3,1);
2、使用SET对变量赋值
DECLARE @no_str varchar(8), @birthday_str smalldatetime, @avgrade_num numeric(3,1);
SET @no_str='20060112';
SET @birthday_str='2000-2-5';
SET @avgrade_num = 89.8;
--注:不能用一个set对多个变量赋值
3、使用SELECT对变量赋值
Select 可以同时对多个变量赋值 如:
DECLARE @no_str varchar(8), @birthday_str smalldatetime, @avgrade_num numeric(3,1);
SELECT @no_str='20060112',
@birthday_str='2000-2-5',
@avgrade_num = 89.8;
--注:SELECT 是查询语句,利用该语句可以将查询的结果赋值给对应的变量如果查询的结果返回多个值,则将最后一个赋值给局部变量。
4、引用变量值
USE MyDatabase
GO
DECLARE @s_no varchar(8), @s_avgrade numeric(3,1);
SET @s_no='20060208';
SET @s_avgrade = 95.0;
UPDATE student
SET s_avgrade = @s_avgrade
Where s_no = @s_no
二、SQL Server全局变量
全局变量是SQL Server系统内部使用的变量,其作用范围并不仅仅局限于某一程序,而是任何程序均可以随时调用。全局变量通常存储一些SQL Server的配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或者是Transact-SQL命令执行后的状态值。
使用全局变量时应该注意以下几点
①全局变量不是由用户的程序定义的,它们是在服务器级定义的。
②用户只能使用预先定义的全局变量,用户只能访问,不能赋值。
③引用全局变量时,必须以标记符“@@”开头。
④局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。
Sql Server常用的全局变量
@@IDENTITY : 返回最后插入行的标识列的列值。
@@ERROR : 返回最后执行的Transact-SQL语句的错误代码。没有错误则为零。
@@ROWCOUNT : 返回受上一语句影响的行数,任何不返回行的语句将这一变量设置为0。
@@DBTS : 返回当前数据库的时间戳值必须保证数据库中时间戳的值是惟一的。
@@SERVERNAME : 返回运行SQL Server 2000本地服务器的名称。
@@REMSERVER : 返回登录记录中记载的远程SQL Server服务器的名称。
@@CONNECTIONS : 返回自上次启动SQL Server以来连接或试图连接的次数,用其可让管理人员方便地了解今天所有试图连接服务器的次数。
@@CURSOR_ROWS : 返回最后连接上并打开的游标中当前存在的合格行的数量。
@@VERSION : 返回SQL Server当前安装的日期、版本和处理器类型。
@@CPU_BUSY : 返回自SQL Server最近一次启动以来CPU的工作时间其单位为毫秒。
@@DATEFIRST : 返回使用SET DATEFIRST命令而被赋值的DATAFIRST参数值。SET DATEFIRST命令用来指定每周的第一天是星期几。
@@FETCH_STATUS : 返回上一次FETCH语句的状态值。
@@IDLE : 返回自SQL Server最近一次启动以来CPU处于空闭状态的时间长短,单位为毫秒。
@@IO_BUSY : 返回自SQL Server最后一次启动以来CPU执行输入输出操作所花费的时间(毫秒)。
@@LANGID : 返回当前所使用的语言ID值。
@@LANGUAGE : 返回当前使用的语言名称。
@@LOCK_TIMEOUT : 返回当前会话等待锁的时间长短其单位为毫秒。
@@MAX_CONNECTIONS : 返回允许连接到SQL Server的最大连接数目。
@@MAX_PRECISION : 返回decimal 和 numeric数据类型的精确度。
@@NESTLEVEL : 返回当前执行的存储过程的嵌套级数,初始值为0。
@@OPTIONS : 返回当前SET选项的信息。
@@PACK_RECEIVED : 返回SQL Server通过网络读取的输入包的数目。
@@PACK_SENT : 返回SQL Server写给网络的输出包的数目。
@@PACKET_ERRORS : 返回网络包的错误数目。
@@PROCID : 返回当前存储过程的ID值。
@@SERVICENAME : 返回SQL Server正运行于哪种服务状态之下:如 MS SQLServer、MSDTC、SQLServerAgent。
@@SPID : 返回当前用户处理的服务器处理ID值。
@@TEXTSIZE : 返回SET语句的TEXTSIZE选项值SET语句定义了SELECT语句中text或image。数据类型的最大长度基本单位为字节。
@@TIMETICKS : 返回每一时钟的微秒数。
@@TOTAL_ERRORS : 返回磁盘读写错误数目。
@@TOTAL_READ : 返回磁盘读操作的数目。
@@TOTAL_WRITE : 返回磁盘写操作的数目。
@@TRANCOUNT : 返回当前连接中处于激活状态的事务数目。
- sqlserver2012如何安装如何使用(Sql server 2012 中文企业版安装图文教程附下载链接)
- sqlserver表分区步骤(行转列之SQL SERVER PIVOT与用法详解)
- sqlserver语句创建窗口布局(SQL Server 2012 开窗函数)
- sqlserver序列可以自定义(sql server 自定义分割月功能详解及实现代码)
- sqlserver 存储过程(SQL Server解析XML数据的方法详解)
- sql server2008如何升级到2012(MS sqlserver 2008数据库转换成2000版本的方法)
- mysql server安装图解教程(mysql容器之间的replication配置实例详解)
- sqlserver创建表结构时添加约束(SQL Server 通过with as方法查询树型结构)
- sql server支持两种登录验证方式(远程登陆SQL Server 2014数据库的方法)
- SQL Server中SET赋值和SELECT赋值
- sqlserver修改排序规则几种方法(SQL Server 分页编号的另一种方式推荐)
- 查看SQL SERVER中指定数据库所有表的字段信息
- sqlserver游标实例(Sql Server临时表和游标的使用小结)
- SQL Server日期与字符串之间的转换
- sqlserver的图形表(SQL Server纵表与横表相互转换的方法)
- sqlserver如何查找值为null的数据(SQL Server中NULL的正确使用与空间占用)
- 富士胶片 中国 我们对上海的信心没有任何改变(富士胶片中国)
- 赢麻了 富士公布2021年度财报 营利同比增长240(富士公布2021年度财报)
- 医事文化谈屑 | 古人的名 字 号(医事文化谈屑古人的名)
- ()
- 网友很惭愧,自己写了很多年的字,到头来还不如一名小学生写的好(自己写了很多年的字)
- 中华第一楷 张瑞龄 86岁高龄,苦练楷书71年,一幅字卖593万(中华第一楷张瑞龄)
热门推荐
- 织梦cms漏洞大全(织梦CMS利用php正则让文章的外链自动加nofollow)
- sql中的map函数用法(Mapper sql语句字段和实体类属性名字有什么关系)
- 阿里云服务器ecs入口(阿里云服务器ECS共享型和计算型有什么区别?)
- python opencv图像合并(Python3+OpenCV2实现图像的几何变换平移、镜像、缩放、旋转、仿射)
- hive数值转字符串(hive中将string数据转为bigint的操作)
- python 验证码识别模块([机器视觉]使用python自动识别验证码详解)
- phplaravel开发规范(Laravel解决nesting level错误和隐藏index.php的问题)
- docker部署php本地开发环境(CentOS7环境下使用Docker搭建PHP运行环境的过程详解)
- 怎么用docker搭建测试环境(基于docker 搭建Prometheus+Grafana的过程详解)
- 如何用postman做接口测试(基于postman实现http接口测试过程解析)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9