输出语句
print '服务器名称:'+@@servername
select @@servername as '服务器名称'
print '当前错误号'+convert (varchar(5),@@error)
逻辑控制语句
语法:
if(条件)
语句或语句块
else
语句或语句块
如果有多条语句,需要使用语句块,语句块使用 begin...end 表示,其作用类似于C语言的“{}”符号
例: declare @myavg float
select @myavg=avg(writtenExam) from stuMarks
print '本班平均分'+convert(varchar(5),@myavg)
if(@myavg>70)
begin
print '本班成绩的前3名为'
select top 3 * from stuMarks order by writtenExam desc
end
else
begin
print '本版成绩的后3名为'
select top 3 * from stuMarks order by writtenExam
end
WHILE 循环语句
可以在 while 循环中使用 continue 和 break 关键字来控制语句的执行
语法: while(条件)
语句或语句块
[ break ]
同C语言一样,也可以使用 break 关键字从最内层的 while 循环中退出
例: select * from stuMarks
declare @n int
while(1=1) --条件永远成立
begin
select @n = count(*) from stuMarks where writtenExam<60 --统计不及格人数
if(@n>0)
update stuMarks set writtenExam=writtenExam+2 --每人加2分
else
break --退出循环
end
print '加分后的成绩如下:'
select * from stuMarks
CASE 多分支语句
语法: case
when 条件1 then 结果1
when 条件2 then 结果2
[ else 其他结果 ]
end
例: select * from stuMarks --原始成绩
print 'ABCDE五级显示成绩如下:'
select stuNo,成绩=case
when writtenExam < 60 then 'E'
when writtenExam between 60 and 69 then 'D'
when writtenExam between 70 and 79 then 'C'
when writtenExam between 80 and 89 then 'B'
else 'A'
end
from stuMarks
批处理语句
“GO”是批处理的标志
GO 关键字标志着批处理的结束
批处理可以提高语句执行的效率