第九节 全局变量、局部表量,赋值
View Code
--全局变量,由系统定义(两个@@符) select@@version --局部变量 declare @name varchar(8) declare @seat int --变量赋值可以使用关键字:set、select set @name='张三' select @seat=15 --查看变量值 select @name as 姓名,@seat 座位号 --使用查询语句给变量赋值 --将表中id为的姓名赋值给@stuName declare @stuName varchar(50) select @stuName=StuName from StuInfo where id=4 --打印变量值 print @stuName 示例: --找李文才左右同桌 declare @name varchar(50) set @name='李文才' declare @seat int select @seat=Seat from StuInfo where StuName=@name select StuName,Seat from StuInfo where Seat=(@seat+1) or Seat=(@seat-1) --全局变量 print'SQLServer的版本:'+@@version print'服务器名称:'+@@serverName print'当前SQLServer语言:'+@@language --@@error:配合sql语句返回当前发生的错误号(返回值:int) insertinto StuInfo (StuName)values('李文才') print'当前错误号:'+convert(varchar(5),@@error) --@@identity:返回最后插入的标识值 insertinto StuInfo (StuName)values('李') insertinto StuInfo (StuName)values('李') print'返回的标识列的值为:'+ convert(varchar(5),@@identity) --if...else --查询出平均分 declare @average int select @average=avg(WrittenExam)from StuMark --判断 if(@average>70) begin print'本班学生考试成绩优秀' selecttop 3 *from StuMark orderby WrittenExam desc end else begin print'本班学生考试成绩较差' selecttop 3 *from StuMArk orderby WrittenExam end --循环 --不及格的人数 declare @n int while(1=1) begin --查询不及格人数 select @n=count(*)from StuMark where WrittenExam<60 --有不及格则继续加分 if(@n>0) update StuMark set WrittenExam=WrittenExam+2 where(writtenExam+2)<=100 else break--终止循环 end