T-SQL(1)-变量(芮)
使用变量 和C语言一样,变量分为: q 局部变量: q 局部变量必须以标记@作为前缀 ,如@age q 局部变量的使用也是先声明,再赋值 q 全局变量: q 全局变量必须以标记@ @作为前缀,如@@version q 全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值 局部变量 q 声明局部变量 DECLARE @变量名 数据类型 例如: DECLARE @name varchar(8) DECLARE @seat int q 赋值 SET @变量名 =值 SELECT @变量名 = 值 例如: SET @name=‘张三’ SELECT @name=stuName FROM stuInfo WHERE stuNo=‘s25302’ 必须确保筛选出的记录只有1条,否则取最后一条,所以T-SQL语句后面一般接WHERE筛选条件。 问题:编写T-SQL查找张三的左右同桌 ? 分析: 第一步,找出“张三“的座位号; 第二步,张三的座位号加1或减1 例子: /*--查找张三的信息--*/ DECLARE @name varchar(8) --学员姓名 SET @name=‘张三’ --使用SET赋值 SELECT * FROM stuInfo WHERE stuName = @name /*--查找张三的左右同桌--*/ DECLARE @seat int --座位号 SELECT @seat=stuSeat FROM stuInfo --使用SELECT赋值 WHERE stuName=@name SELECT * FROM stuInfo WHERE (stuSeat = @seat+1) OR (stuSeat = @seat-1) GO 全局变量 全局变量都使用两个@标志作为前缀
变量 含义 @@ERROR 最后一个T-SQL错误的错误号 @@IDENTITY 最后一次插入的标识值 @@LANGUAGE 当前使用的语言的名称 @@MAX_CONNECTIONS 可以创建的同时连接的最大数目 @@ROWCOUNT 受上一个SQL语句影响的行数 @@SERVERNAME 本地服务器的名称 @@TRANSCOUNT 当前连接打开的事务数 @@VERSION SQL Server的版本信息 重点是粗线标识的全局变量,其他的可以到SQL Server帮助中查询。 例子: print ‘SQL Server的版本’+@@VERSION print ‘服务器的名称: ‘+@@SERVERNAME INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge) VALUES(‘武松’,’s25328’,’男’,’23’) --如果大于0表示上一条语句执行有错误 print ‘当前错误号’+convert(varchar(5),@@ERROR) print ‘刚才报名的学员,座位号为:’ +convert(varchar(5),@@IDENTITY ) UPDATE stuinfo SET stuAge=85 WHERE stuName=‘张三’ print ‘当前错误号’+convert(varchar(5),@@ERROR) GO