前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库知识:SQLServer变量相关介绍

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

原创
作者头像
IT技术分享社区
修改2021-02-24 15:22:45
6590
修改2021-02-24 15:22:45
举报
文章被收录于专栏:IT技术分享社区IT技术分享社区

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;

个人博客网站:https://programmerblog.xyz

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、概述
  • 2、分类
    • 2.1.局部变量
      • 2.2 全局变量
      • 3.声明变量
        • 3.1、简单声明
          • 3.2 声明多个变量
            • 3.3 变量作用域
            • 4.变量赋值
            相关产品与服务
            数据库
            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档