最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

SQL 中局部变量全局变量详解

来源:动视网 责编:小OO 时间:2025-10-02 00:56:06
文档

SQL 中局部变量全局变量详解

Transact-SQL局部变量和全局变量Transact-SQL中可以使用两种变量,一种是局部变量(Local Variable)另外一种是全局变量(Global Variable)。看到这个知识的时候我特别疑惑,因为课本上写着,变量是对T-SQL语音的一种重要扩展,T-SQL中的变量可以分为局部变量(localvariable,以@为变量名称开头)和全局变量(globalvariable,以@为名称开头),两者的用法和设置各不相同。翻阅了好多资料最后证明一点,课本上写错了,全局变量应该以@
推荐度:
导读Transact-SQL局部变量和全局变量Transact-SQL中可以使用两种变量,一种是局部变量(Local Variable)另外一种是全局变量(Global Variable)。看到这个知识的时候我特别疑惑,因为课本上写着,变量是对T-SQL语音的一种重要扩展,T-SQL中的变量可以分为局部变量(localvariable,以@为变量名称开头)和全局变量(globalvariable,以@为名称开头),两者的用法和设置各不相同。翻阅了好多资料最后证明一点,课本上写错了,全局变量应该以@
Transact-SQL局部变量和全局变量 

Transact-SQL中可以使用两种变量,一种是局部变量(Local Variable)另外一种是全局变量(Global Variable)。看到这个知识的时候我特别疑惑,因为课本上写着,变量是对T-SQL语音的一种重要扩展,T-SQL中的变量可以分为局部变量(local variable,以@为变量名称开头)和全局变量(global variable,以@为名称开头),两者的用法和设置各不相同。翻阅了好多资料最后证明一点,课本上写错了,全局变量应该以@@为开头。不过这个过程也让我对这两个概念有了很深的认识。

局部变量

局部变量是用户可自定义的变量,它的作用范围仅在程序内部。在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量使用。局部变量必须以“@”开头,而且必须先用DECLARE命令说明后才可使用。其说明形式如下:

DECLARE @变量名 变量类型 [@变量名 变量类型…]

其中变量类型可以是SQL Server 2000支持的所有数据类型,也可以是用户自定义的数据类型。

在Transact-SQL中不能像在一般的程序语言中一样使用“变量=变量值”来给变量赋值。必须使用SELECT或SET命令来设定变量的值,其语法如下:

SELECT@局部变量=变量值

SET @局部变量=变量值

例:声明一个长度为10 个字符的变量“id”并赋值

declare @id char(10)

select @id=‘10010001’  

注意:可以在Select命令查询数据时,在Select命令中直接将列值赋给变量。例1:查询座位号为“3”的学员和年龄,将其分别赋予变量name和age。 

例1

use stuDB 

declare @name varchar(8)  

declare @age int 

select @name=stuName,@age=stuAge from stuInfo where stuSeat=3 

select @name as 姓名,@age as 年龄

运行结果如下:

姓名      年龄 

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

李磊    21 

注意:数据库语言和编程语言有一些关键字,关键字是在某一一样下能够促使某一操作发生的字符组合,为避免冲突和产生错误,在命令表、列、变量以及其它对象时应避免使用关键字。

全局变量

全局变量是SQL Server系统内部使用的变量,其作用范围并不局限于某一程序,而是任何程序均可随时调用。全局变量通常存储一些SQL Server的配置设定值和效能统计数据。用户可在程序中用全局变量来测试系统的设定值或Transact-SQL命令执行后的状态值。

注意:一、全局变量不是由用户的程序定义的,它们是在服务器级定应义的。

二、只能使用预先说明及定义的变局变量。

三、引用全局变量时,必须以“@@”开头。

四、局部变量的名称不能与全局变量的名称相同、否则会在应用中出错。

这里附上常用的全部变量及其含义:

select APP_NAME ( ) as w --当前会话的应用程序 

select @@ERROR    --返回最后执行的 Transact-SQL 语句的错误代码(integer) 

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服务器安装的日期、版本和处理器类型。

 

文档

SQL 中局部变量全局变量详解

Transact-SQL局部变量和全局变量Transact-SQL中可以使用两种变量,一种是局部变量(Local Variable)另外一种是全局变量(Global Variable)。看到这个知识的时候我特别疑惑,因为课本上写着,变量是对T-SQL语音的一种重要扩展,T-SQL中的变量可以分为局部变量(localvariable,以@为变量名称开头)和全局变量(globalvariable,以@为名称开头),两者的用法和设置各不相同。翻阅了好多资料最后证明一点,课本上写错了,全局变量应该以@
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top