--全局变量,由系统定义(两个@@符)
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