全局变量是SQL Server系统内部事先定义好的变量,不用用户参与定义,对用户而言,其作用范围并不局限于某一程序,而是任何程序均可随时调用。全局变量通常用于存储一些SQL Server的配置设定值和效能统计数据。 SQL Server一共提供了30多个全局变量,本节只对一些常用变量的功能和使用方法进行介绍。全局变量的名称都是以@@开头的。 (1)@@CONNECTIONS 记录自最后一次服务器启动以来,所有针对这台服务器进行的连接数目,包括没有连接成功的尝试。 使用@@CONNECTIONS可以让系统管理员很容易地得到今天所有试图连接本服务器的连接数目。 (2)@@CUP_BUSY 记录自上次启动以来尝试的连接数,无论连接成功还是失败,都以ms为单位的CPU工作时间。 (3)@@CURSOR_ROWS 返回在本次服务器连接中,打开游标取出数据行的数目。 (4)@@DBTS 返回当前数据库中timestamp数据类型的当前值。 (5)@@ERROR 返回执行上一条Transact-SQL语句所返回的错误代码。 在SQL Server服务器执行完一条语句后,如果该语句执行成功,则将返回@@ERROR的值为0,如果该语句执行过程中发生错误,则将返回错误的信息,而@@ERROR将返回相应的错误编号,该标号将一直保持下去,直到下一条语句得到执行为止。 由于@@ERROR在每一条语句执行后被清除并且重置,应在语句验证后立即检查它,或将其保存到一个局部变量中以备事后查看。 示例: 在“pubs”数据库中修改“authors”数据表时,用@@ERROR检测限制查询冲突。 图1? 修改数据时检测错误 SQL语句如下: USE pubs GO UPDATE authors SET au_id = '172 32 1176' WHERE au_id = '172-32-1176' IF @@ERROR = 547 print 'A check constraint violation occurred' (6)@@FETCH_STATUS 返回上一次使用游标FETCH操作所返回的状态值,且返回值为整型。 表1? @@FETCH_STATUS返回值的描述 例如,到了最后一行数据后,还要接着取下一行数据等,返回的值为?2,表示返回的值已经丢失。 (7)@@IDENTITY 返回最近一次插入的identity列的数值,返回值是numeric。 示例: 在“pugs”数据库中的“jobs”数据表中,插入一行数据,并用@@identity显示新行的标识值。SQL语句如下: USE pubs INSERT INTO jobs (job_desc,min_lvl,max_lvl) VALUES ('Accountant',12,125) SELECT @@IDENTITY AS 'Identity' (8)@@IDLE 返回以ms为单位计算SQL Server服务器自最近一次启动以来处于停顿状态的时间。 (9)@@IO_BUSY 返回以ms为单位计算的SQL Server服务器自最近一次启动以来花在输入和输出上的时间。 (10)@@LOCK_TIMEOUT 返回当前对数据锁定的超时设置。 (11)@@PACK_RECEIVED 返回SQL Server服务器自最近一次启动以来一共从网络上接收数据分组的数目。
(12)@@PACK_SENT 返回SQL Server服务器自最近一次启动以来一共向网络上发送数据分组的数目。 (13)@@PROCID 返回当前存储过程的ID标识。 (14)@@REMSERVER 返回在登录记录中记载远程SQL Server服务器的名字。 (15)@@ROWCOUNT 返回上一条SQL语句所影响到数据行的数目。对所有不影响数据库数据的SQL语句,这个全局变量返回的结果是0。在进行数据库编程时,经常要检测@@ROWCOUNT的返回值,以便明确所执行的操作是否达到了目标。 (16)@@SPID 返回当前服务器进程的ID标识。 (17)@@TOTAL_ERRORS 返回自SQL Server服务器启动来,所遇到读写错误的总数。 (18)@@TOTAL_READ 返回自SQL Server服务器启动来,读磁盘的次数。 (19)@@TOTAL_WRITE 返回自SQL Server服务器启动来,写磁盘的次数。 (20)@@TRANCOUNT 返回当前连接中,处于活动状态事务的数目。 (21)@@VERSION 返回当前SQL Server服务器安装日期、版本,以及处理器的类型。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|