变量对于一种语言是必不可少的一部分,当然,对于T-sql来讲也是一样。在简单查询中,往往很少用到变量,
但无论对于复杂的查询或存储过程中,变量都是必不可少的一部分。在sqlServer中,变量分全局变量和局部变量两种:
一。全局变量:
全局变量是由系统定义的,在整个sql Server实例内都能访问到的变量.全局变量以两个@@符号作为开头,用户只能访问,不能赋值。
常用:
@@IDENTITY : 返回最后插入行的标识列的列值。
@@ERROR : 返回最后执行的Transact-sql语句的错误代码。没有错误则为零。
@@ROWCOUNT : 返回受上一语句影响的行数,任何不返回行的语句将这一变量设置为0。
@@DBTS : 返回当前数据库的时间戳值必须保证数据库中时间戳的值是惟一的。
@@SERVERNAME : 返回运行sql Server 2000本地服务器的名称。
@@REMSERVER : 返回登录记录中记载的远程sql Server服务器的名称。
@@CONNECTIONS : 返回自上次启动sql Server以来连接或试图连接的次数,用其可让管理人员方便地了解今天所有试图连接服务器的次数。
@@CURSOR_ROWS : 返回最后连接上并打开的游标中当前存在的合格行的数量。
@@VERSION : 返回sql Server当前安装的日期、版本和处理器类型。
@@cpu_BUSY : 返回自sql Server最近一次启动以来cpu的工作时间其单位为毫秒。
@@DATEFirsT : 返回使用SET DATEFirsT命令而被赋值的DATAFirsT参数值。SET DATEFirsT命令用来指定每周的第一天是星期几。
@@FETCH_STATUS : 返回上一次FETCH语句的状态值。
@@IDLE : 返回自sql Server最近一次启动以来cpu处于空闭状态的时间长短,单位为毫秒。
@@IO_BUSY : 返回自sql Server最后一次启动以来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 : 返回网络包的错误数目。
@@PROCID : 返回当前存储过程的ID值。
@@SERVICENAME : 返回sql Server正运行于哪种服务状态之下:如 MS sqlServer、MSDTC、sqlServerAgent。
@@SPID : 返回当前用户处理的服务器处理ID值。
@@TEXTSIZE : 返回SET语句的TEXTSIZE选项值SET语句定义了SELECT语句中text或image。数据类型的最大长度基本单位为字节。
@@TIMETICKS : 返回每一时钟的微秒数。
@@TOTAL_ERRORS : 返回磁盘读写错误数目。
@@TOTAL_READ : 返回磁盘读操作的数目。
@@TOTAL_WRITE : 返回磁盘写操作的数目。
@@TRANCOUNT : 返回当前连接中处于激活状态的事务数目。
二。局部变量
局部变量由用户定义,生命周期只在一个批处理内有效。局部变量以一个@符号开头,由用户自己定义和赋值。赋值时用 select 或 set。
示例:
declare @age int
declare @name varchar(20)
set @name='张三' --用set 方法给变量赋值 注: 此方法一次只能给一个变量赋值
select @age=age from client where [name]=@name --查询客户张三的年龄赋值给@age变量 注:此方法能一次多个变量赋值
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。