第九节 全局变量、局部表量,赋值

View Code
--全局变量,由系统定义(两个@@符)

select@@version

--局部变量

declare @name varchar(8)

declare @seat int

--变量赋值可以使用关键字:setselect

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

 

posted @ 2012-06-24 10:49  ComBat  阅读(123)  评论(0编辑  收藏  举报