在SQL Server中全局变量名称

在SQL Server中,全局变量是一种特殊类型的变量,服务器将维护这些变量的值。全局变量以@@前缀开头,不必进行声明,它们属于系统定义的函数。下表就是SQL Server中一些常用的全局变量。 

---------------------------  

全局变量名称
描述

@@CONNECTIONS
返回 SQL Server 自上次启动以来尝试的连接数。
@@CPU_BUSY
返回 SQL Server 自上次启动后的工作时间。
@@CURSOR_ROWS
返回连接上打开的上一个游标中的当前限定行的数目,
确定当其被调用时检索了游标符合条件的行数。
@@DATEFIRST
针对会话返回 SET DATEFIRST 的当前值,SET DATEFIRST 表示指定的
每周的第一天。
@@DBTS
返回当前数据库的当前 timestamp 数据类型的值,
这一时间戳值在数据库中必须是唯一的。
@@ERROR
返回执行的上一个 Transact-SQL 语句的错误号,
如果前一个 Transact-SQL 语句执行没有错误,则返回 0。
@@FETCH_STATUS
返回针对连接当前打开的任何游标发出的上一条游标 FETCH
语句的状态。
@@IDENTITY
返回上次插入的标识值。
@@IDLE
返回 SQL Server 自上次启动后的空闲时间。结果以 CPU 时间
增量或“时钟周期”表示,并且是所有 CPU 的累积。
@@IO_BUSY
返回自从 SQL Server 最近一次启动以来,Microsoft SQL Server
已经用于执行输入和输出操作的时间。其结果是 CPU 时间增量
(时钟周期),并且是所有 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
返回自上次启动 SQL Server 后,在 SQL Server 连接上发生的网络
数据包错误数。
@@PROCID
返回 Transact-SQL 当前模块的对象标识符 (ID)。Transact-SQL
模块可以是存储过程、用户定义函数或触发器。
@@REMSERVER
返回远程 SQL Server 数据库服务器在登录记录中显示的名称。
@@ROWCOUNT
返回受上一语句影响的行数。
@@SERVERNAME
返回运行 SQL Server 的本地服务器的名称。
@@SERVICENAME
返回 SQL Server 正在其下运行的注册表项的名称。若当前实例为
默认实例,则 @@SERVICENAME 返回 MSSQLSERVER。
@@SPID
返回当前用户进程的会话 ID。
@@TEXTSIZE
返回 SET 语句中的 TEXTSIZE 选项的当前值。
@@TIMETICKS
返回每个时钟周期的微秒数。
@@TOTAL_ERRORS
返回 SQL Server 自上次启动之后所遇到的磁盘写入错误数。
@@TOTAL_READ
返回 SQL Server 自上次启动后读取磁盘(不是读取高速缓存)的次数。
@@TOTAL_WRITE
返回 SQL Server 自上次启动以来所执行的磁盘写入次数。
@@TRANCOUNT
返回当前连接的活动事务数。
@@VERSION
返回当前的 SQL Server 安装的版本、处理器体系结构、生成日期
和操作系统。


 以上全局变量有很多都是得到计算机相关版本对CPU及相关属性的获取,也有一些我们在编写Transact-SQL经常使用到的全局变量,下面对几个全局变量做一下解释:
  @@DATEFIRST:看下面示例运行的结果:
SET DATEFIRST 5 
SELECT @@DATEFIRST AS ' firstDay ', DATEPART(dw, GETDATE()) AS 'Today'
  上面意思为设每一天的星期五为第一天,那么今天是星期日,执行的结果如下:
  firstDay Today
  ------- -----------
  5 3
  @@ERROR:在使用的频度特别高,特别在一些存储过程的使用中,如我们在每更新一个操作都想对其异常进行判断和检测,这时候我产会根据@@ERROR的值进行判断,如: 
    IF @@ERROR <> 0 
    BEGIN 
  --在此抛出错误的异常 
  --退出存储过程 
  END
  @@IDENTITY:在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值。如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL。如果插入了多个行,生成了多个标识值,则 @@IDENTITY 将返回最后生成的标识值。如果语句触发了一个或多个触发器,该触发器又执行了生成标识值的插入操作,那么,在语句执行后立即调用 @@IDENTITY 将返回触发器生成的最后一个标识值。如果对包含标识列的表执行插入操作后触发了触发器,并且触发器对另一个没有标识列的表执行了插入操作,则 @@IDENTITY 将返回第一次插入的标识值。出现 INSERT 或 SELECT INTO 语句失败或大容量复制失败,或者事务被回滚的情况时,@@IDENTITY 值不会恢复为以前的设置。
  @@ROWCOUNT:返回上一语句影响的行数,我们常见的就是在更新/删除/插入或查找数据的语句后,会用这个语句进行判断,这个变量保存了上步操作所影响的行数,如: 
     --数据库操作影响的行数 
  IF @@ ROWCOUNT >0 
  BEGIN 
       --插入成功 
  END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值