这个语法用以表明在 SQL SERVER 中定义的存储信息的全局变量
在使用存储过程的时候你可以自己定义全局变量是非常有用的 SQL SERVER 也提供
了几种系统全局变量 对于数据库的系统用户来说它可能是有用的 下表中给出了这些变
量的全部清单 你可以在 SQL SERVER SYSTEM10 的文档中找到它
变量名 作用
@@char_convert 如果字符转换成功时其值为0
@@client_csid 客户机所使用字符集的ID
416
…………………………………………………………Page 417……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
@@client_csname 客户机的字符集的名字
@@connections 从SQL Server启动以来的登录次数
@@cpu_busy 从SQL Server启动以来的CPU 忙 的时间总数
@@error 错误的状态
@@identity 插入到确定列中的最后一个值
@@idle 从SQL Server启动以来的总时间数
@@io_busy SQL Server用于I/O操作的时间
@@isolation 当前的Transact…SQL程序的隔离级别
@@langid 定义了本地语言的ID号
@@language 定义了本地语言的名称
@@maxcharlen 字符的最大长度
@@max_connections 可与SQL SERVER进行连接的最大数量
@@ncharsize Average length of a national character。
@@nestlevel 当前进程的嵌套级别
@@pack_received 从SQL Server启动以来的读入的数据包的数量
@@pack_sent 从SQL Server所发出的输出包的数量
@@packet_errors 从SQL Server启动以来产生错误的数量
@@procid 当前正在运行的存储过程的ID号
@@rowcount 上一个命令所涉及的行数
@@servername 本地local SQL Server的名字
@@spid 当前正在处理的进程ID号
@@sqlstatus 存储状态信息
@@textsize 由SELECT语句所返回的文本映像的最大长度
@@thresh_hysteresis Change in free space required to activate a threshold。
@@timeticks Number of microseconds per tick。
@@total_errors 在读写过程中产生的错误数
@@total_read 在SQL Server启动以来读磁盘的次数
@@total_write 在SQL Server启动以来写磁盘的次数
@@tranchained 在Transact…SQL程序中当前事务的模式
@@trancount 事务的嵌套级别
@@transtate 当一个语句运行后当前事务的状态
@@version 当前SQL Server的版本日期
使用变量
使用 DELCARE 关键字你也可以在一行中同时定义多个变量 尽管在稍后你在看你的
代码的时候可以能糊涂 见下例
1》 declare @batter_name char(30); @team int; @average float
2》 go
接下来的部分将会说明如何使用变量进行有用的程序操作
使用变量来存储数据
变量只有在当前的语句块中有效 在 TRANSACT…SQL 中如果你想运行一个语句块
417
…………………………………………………………Page 418……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
你需要使用 GO 语句 在 ORACLE 中的分号有相同的作用 变量只能在当前事务中被引用
你不能使用= 来简单地初始化变量 你可以试一下下边的语句 你将会发现它会返回
错误
输入
1》 declare @name char(30)
2》 @name = 〃Billy Brewster〃
3》 go
你将会收到一个错误信息告诉你第二行的语法是不正确的 正确的初始化变量的方法
是使用 SELECT 语句 你已经会使用这个命令了 现在用正确的语法来重复上边的例子
输入
1》 declare @name char(30)
2》 select @name = 〃Billy Brewster〃
3》 go
这个语句将会正确的执行 如果你在 GO 语句之前又插入了其它的语句 那么该变量
就可以在其它的语句中使用
将数据存入局部变量
变量经常用来存储从数据库中获得的数据 它们也可以在通常的 SQL 语句中使用 如
SELECT INSERT UPDATE 和 DELETE 下例中给出了使用方法
例 19 1
这个例子将会返回在 BASEBALL 表中的在 Portland Beavers。 的平均击球成功率最高的
PLAYER 的名字
输入
1》 declare @team_id int; @player_name char(30); @max_avg float
2》 select @team_id = TEAM_ID from TEAMS where CITY = 〃Portland〃
3》 select @max_avg = max(AVERAGE) from BATTERS where TEAM = @team_id
4》 select @player_name = NAME from BATTERS where AVERAGE = @max_avg
418
…………………………………………………………Page 419……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
5》 go
在本例中分成了三个查询以给出变量的使用演示
PRINT 命令
TRANSACT…SQL 的另一个有用的功能就是 PRINT 它可以让你向显示设备上输出信
息 该命令的语法格式如下
语法
PRINT character_string
尽管 PRINT 命令只可以输入字符串 但是在 TRANSACT…SQL 中提供了很多的函数可
以让你把其它的数据类型转化为字符串 而且还可以逆向转换
例 19 2
本例重复了上边的例子 但是在最后则可以将 PLAYER 的名字打印出来
输入
1》 declare @team_id int; @player_name char(30); @max_avg float
2》 select @team_id = TEAM_ID from TEAMS where CITY = 〃Portland〃
3》 select @max_avg = max(AVERAGE) from BATTERS where TEAM = @team_id
4》 select @player_name = NAME from BATTERS where AVERAGE = @max_avg
5》 print @player_name
6》 go
注意在 WHERE 子句 或其它的子句 中也可以使用变量 就好象它们是常量一样
流控制
对于 TRANSACT…SQL 的最为强大的功能也许就是它具有程序流的控制功能 如果你
使用其它的语言如 C COBOL PASCAL VISUAL BASIC 编过程序 那么你也许会见过
类似于 IF THEN 或循环的控制命令 这一部分包括了一些主要的程序流控制命令
419
…………………………………………………………Page 420……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
BEGIN END 语句
TRANSACT…SQL 使用 BEGIN 和 END 来标记一个程序语句块的开始和结束 在?
小说推荐
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 最新章:第27章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 最新章:第37章
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 最新章:第214章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 最新章:第28章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- 深入浅出MFC第2版(PDF格式)
- -Page 1-Page 2-山高月小山高月小 水落石出水落石出山高月小山高月小 水落石出水落石出-Page 3-深入淺出MFC(第版 使用Visual C 5.0 MFC 4.2)Dissecting MFC(Second Edition Using Visual C 5.0 MFC 4.2)侯俊
- 最新章:第309章
- 软件工程实践者的思想(PDF格式)
- -Page 1-大 道 至 简—软件工程实践者的思想周爱民(Aimingoo 著-Page 2-序2004 年 11 月初爱民(Aimingoo)第一次把他的书稿给我,我翻看了一下,第一反应讲的是感想。这不错,在技
- 最新章:第26章
- 电子电路大全(PDF格式)
- -Page 1-电力生产人员技能培训电路基础部分电路基础部分电电路路基基础础部部分分-Page 2-一、电路的基本概念和基本定律-Page 3-考试点1o 1、掌握电阻、独立电压源、独立电流源、11受控源、电容、电感、耦合电感、理想变压器诸元件的定义、性质2o 2、掌握电流、电压参考方向的概念223
- 最新章:第353章