SQL中变量的种类及表现形式
在SQL中,我们常常使⽤临时表来存储临时结果,对于结果是⼀个集合的情况,这种⽅法⾮常实⽤,但当结果仅仅是⼀个数据或者是⼏个数据时,还要去建⼀个表,显得就⽐较⿇烦,另外,当⼀个SQL语句中的某些元素经常变化时,⽐如选择条件,(⾄少我想)应该使⽤局部变量。当然MS SQL Server的全局变量也很有⽤。
>>>>局部变量
声明:DECLARE @local_variable data_type
@local_variable 是变量的名称。变量名必须以 at 符 (@) 开头。data_type 是任何由系统提供的或⽤户定义的数据类型。变量不能是 text、ntext 或 image 数据类型。
⽰例:
use master
declare @SEL_TYPE char(2)
declare @SEL_CUNT numeric(10)
set @SEL_TYPE = 'U'/*user table*/
set @SEL_CUNT = 10
/*返回系统中⽤户表的数⽬*/
select @SEL_CUNT = COUNT(*)
from sysobjects
where type = @SEL_TYPE
select @SEL_CUNT as 'User table ''s count'
如果要返回系统表的数⽬,可以⽤set @SEL_TYPE = 'S'
可能这个例⼦并不能说明使⽤变量的好处,我只是想说明使⽤⽅法。当⼀组(⼏个甚⾄⼏⼗个)SQL语句都使⽤某个变量时,就能体会到他的好处了。
>>>>全局变量
全局变量是系统预定义的,返回⼀些系统信息,全局变量以两个at(@)开头。下⾯是我统计了⼀些较为常⽤的变量。
@@CONNECTIONS
返回⾃上次启动以来连接或试图连接的次数。
@@CURSOR_ROWS
返回连接上最后打开的游标中当前存在的合格⾏的数量。
@@DATEFIRST
返回每周第⼀天的数字
@@ERROR
返回最后执⾏的SQL 语句的错误代码。
@@FETCH_STATUS
返回被 FETCH 语句执⾏的最后游标的状态,⽽不是任何当前被连接打开的游标的状态。
@@IDENTITY
返回最后插⼊的标识值
sql包含哪几个部分@@LANGID
返回当前所使⽤语⾔的本地语⾔标识符(ID)。
@@LANGUAGE
返回当前使⽤的语⾔名。
@@LOCK_TIMEOUT
返回当前会话的当前锁超时设置,单位为毫秒。
@@PROCID
返回当前过程的存储过程标识符 (ID) 。
@@ROWCOUNT
返回受上⼀语句影响的⾏数。
@@SERVERNAME
返回运⾏的本地服务器名称。
@@SPID
返回当前⽤户进程的服务器进程标识符 (ID)。@@TRANCOUNT
返回当前连接的活动事务数。
@@VERSION
返回当前安装的⽇期、版本和处理器类型。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论