SQL Server—T-sql变量详解

  • 变量

    • ‌SQL Server变量‌是指在SQL Server数据库管理系统中用于存储数据的可变实体。这些变量可以在查询执行过程中改变其值,与常量相对,常量是固定不变的。SQL Server中的变量分为两种主要类型:局部变量和全局变量。

      • 一、全局变量

        全局变量是由系统定义的,在整个SQL Server实例内都能访问到的变量,全部变量以@@开头,用户只能访问,不能赋值。

      • select APP_NAME ( ) as w --当前会话的应用程序
         select @@ERROR    --返回最后执行的 Transact-SQL 语句的错误代码(integer)(如果最后一条语句不出错,就一直是0)
         select @@IDENTITY   --返回最后插入的标识值
         select USER_NAME()    --返回用户数据库用户名
         select @@CONNECTIONS  --返回自上次SQL启动以来连接或试图连接的次数。
         select GETDATE() --当前时间
         select @@CPU_BUSY/100  --返回自上次启动SQL 以来 CPU 的工作时间,单位为毫秒
         USE tempdb select @@DBTS  as w  --为当前数据库返回当前 timestamp 数据类型的值。这一 timestamp 值保证在数据库中是唯一的。
         select @@IDLE  as w  --返回SQL自上次启动后闲置的时间,单位为毫秒
         select @@IO_BUSY AS w   --返回SQL自上次启动后用于执行输入和输出操作的时间,单位为毫秒
         select @@LANGID AS w   --返回当前所使用语言的本地语言标识符(ID)
         select @@LANGUAGE AS w   --返回当前使用的语言名
         select @@LOCK_TIMEOUT as w  --当前会话的当前锁超时设置,单位为毫秒。
         select @@MAX_CONNECTIONS  as w  --返回SQL上允许的同时用户连接的最大数。返回的数不必为当前配置的数值
         EXEC sp_configure  --显示当前服务器的全局配置设置
         select @@MAX_PRECISION as w --返回 decimal 和 numeric 数据类型所用的精度级别,即该服务器中当前设置的精度。默认最大精度38。
         select @@OPTIONS  as w  --返回当前 SET 选项的信息。
         select @@PACK_RECEIVED as w  --返回SQL自启动后从网络上读取的输入数据包数目。
         select @@PACK_SENT as w  --返回SQ自上次启动后写到网络上的输出数据包数目。
         select @@PACKET_ERRORS as w  --返回自SQL启动后,在SQL连接上发生的网络数据包错误数。
         select @@SERVERNAME as w --返回运行SQL服务器名称。
         select @@SERVICENAME  as w --返回SQL正在其下运行的注册表键名
         select @@TIMETICKS  as w --返回SQL服务器一刻度的微秒数
         select @@TOTAL_ERRORS AS w  --返回 SQL服务器自启动后,所遇到的磁盘读/写错误数。
         select @@TOTAL_READ  as w  --返回 SQL服务器自启动后读取磁盘的次数。
         select @@TOTAL_WRITE as w  --返回SQL服务器自启动后写入磁盘的次数。
         select @@TRANCOUNT  as w  --返回当前连接的活动事务数。
         select @@VERSION as w    --返回SQL服务器安装的日期、版本和处理器类型。

    • 二、局部变量

      • 1. 局部变量由用户定义,生命周期只在一个批处理内有效。
      • 2. 局部变量的声明
        • 1. 介绍:

          局部变量的声明必须以"DECLARE"(declare)作为关键字,变量的命名必须以"@"作为变量名的第一个字符.必须为所声明的变量提供一个数据类型和数据长度。

          注意:局部变量的数据类型不能为Text,ntext,和Image类型,当对于字符型变量只提供数据类型没有提供数据长度时,数据长度默认为1.

        • 实例:

        • DECLARE @Name nvarchar(20)

      • 3. 使用set设置变量
        • DECLARE @i int,@j int set @i = 10; set @j = 20;

      • 4. 使用select设置变量
        • DECLARE @i int SELECT @i = 100

      • 5. set和select的区别
        • 1. set 不支持同时对多个变量赋值,但是select可以同时对多个变量赋值

        • 2. set 表达式返回多个值的时候会出错,select会获取最后一个值

        • 3. set查询一个没有的数据时候, 默认值为null,select保持原值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值