SqlServer全局变量备忘
全局变量是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服务器自
相关文档:
SQL-Structured Query Language
--(开启SQL服务:net start mssqlserver)
--(在命令行中输入'sqlwb'命令可打开SQL管理器 )
--(如果要执行多条命令中的一条,鼠标选定后再按F5执行)
create database sales ......
索引分为两大类:聚集索引和非聚集索引
一、聚集索引
当数据表中的一列被确定为主键后,SQLServer会自动为它建立聚集索引,因为聚集索引是标识每个记录行的键,所以它将被应用到每个查询中.
二、非聚集索引
非聚集索引的情况就比较复杂了,因为它是相对于表独立组织的,在SQLServer中有单独的结构来存储非聚集索引.
......
一、主键与聚集索引并不是一对一匹配的
一般情况下我们都认为,聚集索引和主键是相互匹配的,因为只要你在SQLServer表中定义了一个主键,那么SQLServer会为这个主键自动添加聚集索引.但是,如果你先在表中基于任意一列建立聚集索引,然后再选择另一列作为主键,这时,这个SQLServer将会基于这个主键建立一个唯一非聚集索引.
二、 ......
sqlserver中:
1 /*
2 1 * Description:对数据表进行行列转换
3 2 * Author:llf
4 3 * 调用说明:exec SP_RowChangeCol '学生成绩表','姓名','课程','分数','desc',0,0,'where 年级=''一年级'''
& ......