数据库知识:SQLServer变量相关知识介绍

举报
IT技术分享社区 发表于 2023/01/31 21:26:14 2023/01/31
【摘要】 ​ 今天给大家分享SQLServer变量相关介绍,希望对大家能有所帮助!1、概述SQLServer变量对应内存中的一个存储空间。它和常量不同,变量的值可以在执行过程中改变。2、分类SQLServer变量根据作用范围不同主要分为局部变量和全局变量。2.1.局部变量局部变量是用户在程序中定义的变量,它仅在定义的程序范围内有效。局部变量可以用来保存从表中读取的数据,也可以作为临时变量保存计算的中间...

 

今天给大家分享SQLServer变量相关介绍,希望对大家能有所帮助!

1、概述

SQLServer变量对应内存中的一个存储空间。它和常量不同,变量的值可以在执行过程中改变。

2、分类

SQLServer变量根据作用范围不同主要分为局部变量和全局变量。

2.1.局部变量

局部变量是用户在程序中定义的变量,它仅在定义的程序范围内有效。局部变量可以用来保存从表中读取的数据,也可以作为临时变量保存计算的中间结果。

注意:局部变量名称的第一个字符必须为一个@。

示例:

-- 定义两个局部变量
DECLARE @m int,@n int;
-- 赋值
SET @m=9;
SET @n=1;
-- 查询
SELECT @m+@n;

2.2 全局变量

全局变量通常以@@开头。这些变量一般都是SQL Server中的系统函数,它们的语法遵循函数的规则。用户可以在程序中使用这些函数测试系统特性和SQL命令的执行情况。常用的全局变量如下:

@@ERROR -- 最后一个SQL错误的错误号
@@IDENTITY -- 最后一次插入的标识值
@@LANGUAGE -- 当前使用的语言的名称
@@MAX_CONNECTIONS -- 可以创建的同时连接的最大数目
@@ROWCOUNT -- 受上一个SQL语句影响的行数
@@SERVERNAME -- 本地服务器的信息
@@TRANSCOUNT -- 当前连接打开的事物数
@@VERSION  -- 查看SQL Server的版本信息

3.声明变量

3.1、简单声明

变量只有在声明后才能使用,可以使用DECLARE语句来声明变量。在声明变量时可以指定变量的数据类型和长度。

DECLARE @name nvarchar(30);

3.2 声明多个变量

声明多个局部变量,需要在定义的局部变量后使跟上一个逗号,然后指定下一个局部变量名称和数据类型。

DECLARE @Name nvarchar(30), @Age int;

3.3 变量作用域

在使用变量时,需要注意变量的作用域。变量具有局部作用域,只在定义它们的批处理或过程中可见。作用域范围从声明变量的地方开始到声明变量的批处理或存储过程的结尾。

USE DB;  
GO
DECLARE @Age int;
SET @Age = 30;
GO -- 结束符
select @Age -- 报错

4.变量赋值

在声明变量后,变量值被默认设置为NULL。可以使用SET或SELECT语句。SET是为变量赋值的首选方法。

变量也可以通过选择列表中当前所引用的值赋值。如果在选择列表中引用变量,则它应当被赋以标量值或者SELECT语句应仅返回一行。

示例:

DECLARE @Age int;
-- SELECT语句赋值
SELECT @Age =  age from t_user ORDER BY age desc;-- 返回最后一行的值
select @Age;
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。