第6章 T-SQL编程
图6.6 【例6-13】的执行结果
习 题
一、填空题
(1) SQL Server服务器将批处理编译成一个可执行单元,称为 。 (2) SET只能给 变量赋值,而SELECT可以给 变量赋值。
(3) 语句能够将多个T-SQL语句组合成一个语句块,并将它们视为一个单元处理。
(4) WHILE语句通过布尔表达式来设置一个循环条件,当条件 时,重复执行一个SQL语句或语句块,否则退出循环,继续执行后面语句。
(5) 语句用来改变程序执行的流程,使程序跳到标有标识和程序继续执行。 (6) 请阅读程序,在横线处填入语句。
DECLARE @Number int,@Total int SET @Number=0 SET @Total=0
WHILE (@Number<11) _____________
SET @Total=@Total+@Number SET @Number=@Number+1 END
PRINT '1+2+...+10='+CAST(@Total AS char(2)) (7) 请阅读程序,在横线处填入语句。
Use Student_Course_Teacher Go
IF _____________ (SELECT * from T where SAL=4000) BEGIN
PRINT '有收入为4000元的教师' END ELSE
139
SQL Server 2005 数据库原理与应用案例教程 PRINT'无'
(8) 请阅读程序,在横线处填入语句。
Use Student_Course_Teacher Go
UPDATE T SET SAL=
_____________
WHEN prof='教授' THEN sal * 1.08 WHEN prof='副教授' THEN sal * 1.07 WHEN prof='讲师' THEN sal * 1.06 ELSE
THEN wage * 1.05
(9) 请阅读程序,在横线处填入语句。
USE Student_Course_Teacher GO
_____________ @name varchar (15)
SET @name= (SELECT Tn FROM T where tno='t3') PRINT @name
(10)请阅读程序,在横线处填入语句。 USE Student_Course_Teacher GO
DECLARE T_cursor CURSOR FOR SELECT * FROM T ______________
FETCH NEXT FROM T_cursor WHILE @@FETCH_STATUS=0 BEGIN
FETCH NEXT FROM T_cursor END
二、选择题
(1) 返回SQL Server当前安装的日期、版本和处理器类型的全局变量是 。
A.@@DBTS B.@@VERSION C.@@NESTLEVEL D.@@REMSERVER (2) 局部变量必须以 开头以区别字段名变量。
A.@ B.# C.¥ D.&
140
第6章 T-SQL编程
(3) RETURN语句用于无条件地终止一个 。
A.查询 B.存储过程 C.批处理 D.程序
(4) 打开游标用FETCH提取记录后,可用@@FETCH_STATUS检测游标的当前状态。当 @@FETCH_STATUS的返回值为 表示提取记录成功。
A.-2 B.-1 C.0 D.1
(5) 批处理用 语句作为批处理的结束标志。
A.END B.GO C.PRINT D.SELECT
(6) RETURN语句用于无条件地终止一个查询、存储过程或者批处理,如Return未指定值,则存储过程返回 。
A.END B.TRUE C.FLASE D.0
(7) DECLARE @x INT,@y INT
SELECT @x=1, @y=2 IF @x>@y PRINT'x>y'
______________ PRINT'y>x'
A.ELSE B.GO C.PRINT D.SELECT (8) DECLARE @x INT, @y INT, @c INT
SELECT @x = 1, @y=1 WHILE @x < 3 BEGIN
PRINT @x --打印变量x 的值
WHILE @y < 3 BEGIN
SELECT @c = 100*@x+ @y PRINT @c --打印变量c 的值
SELECT @y = @y + 1 END
SELECT @x = @x + 1 SELECT @y = 1 ______________
A.ELSE B.GO C.PRINT D.END
141
SQL Server 2005 数据库原理与应用案例教程
(9) delay ’01:02:03’
SELECT * FROM T A.SELECT B.IF C.WAITFOR D.WHILE (10) DECLARE @x INT
SELECT @x = 1 label_1 PRINT @x
SELECT @x = @x + 1 WHILE @x < 6
______________ label_1
A.THEN C.GOTO 三、简答题
(1) 简述SQL Server支持的两种注释方式。 (2) 简述什么情况下用到WAITFOR语句。 (3) 简述游标的主要用途。 (4) 游标的使用过程。
(5) 使用什么语句可以打开游标,打开成功后,游标指针指向结果集的什么位置?
B.GO D.END
142