--学习SQL数据库,变量是必须要掌握的概念,系统变量就是变量中最重要的变量之一,下面是SQL中系统变量的应用实例

use AdventureWorksDW
exec sp_addtype 'char_id','varchar(10)','not null'/*图形化:可编程性,类型,用户自定义类型*/

exec sp_droptype 'char_id'--删除该类型
go
/*
用DECLARE创建变量必须@开头
SET为变量赋值
*/
--在Transact-SQL中不能像在一般的程序语言中一样使用“变量=变量值”来给变量赋值。必须使用SELECT或SET命令来设定变量的值,其语法如下:

--SELECT@局部变量=变量值

SET @局部变量=变量值

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

declare@id char(10)

select@id='10010001'

--注意:可以在Select命令查询数据时,在Select命令中直接将列值赋给变量。例4-6:查询编号为“10010001”的员工和工资,将其分别赋予变量name和wage。

例
use pangu
declare@name char(30)@wage money
select@name=e_name,@wage=e_wage
from employee
where emp_id='10010001'
select@name as e_name,@wage as e_wage
--运行结果如下:
e_name e_wage
------------------------------
张三 8000.0000

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

/*
全局变量不能自定义,
@@SERVERNAME    : 返回运行SQL Server 2000本地服务器的名称。
@@REMSERVER       : 返回登录记录中记载的远程SQL Server服务器的名称。
@@CONNECTIONS : 返回自上次启动SQL Server以来连接或试图连接的次数,用其可让管理人员方便地了解今天所有试图连接服务器的次数。
@@CURSOR_ROWS : 返回最后连接上并打开的游标中当前存在的合格行的数量。
@@ERROR                 : 返回最后执行的Transact-SQL语句的错误代码。
@@ROWCOUNT       : 返回受上一语句影响的行数,任何不返回行的语句将这一变量设置为0。
@@VERSION             : 返回SQL Server当前安装的日期、版本和处理器类型。
@@CPU_BUSY          : 返回自SQL Server最近一次启动以来CPU的工作时间其单位为毫秒。
@@DATEFIRST         : 返回使用SET DATEFIRST命令而被赋值的DATAFIRST参数值。SET DATEFIRST命令用来指定每周的第一天是星期几。
@@DBTS                    : 返回当前数据库的时间戳值必须保证数据库中时间戳的值是惟一的。
@@FETCH_STATUS : 返回上一次FETCH语句的状态值。
@@IDENTITY            : 返回最后插入行的标识列的列值。
@@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      : 返回当前连接中处于激活状态的事务数目。
*/