第九章测试1.
存储过程是一组完成特定功能的SQL语句集合,经编译后存储在数据库中,可以被多次调用。
A:对 B:错
答案:A
2.
存储过程可以有参数也可以没有参数。
A:对 B:错 3.after触发器是在激活触发器的语句执行完,相关事务提交后,才会被触发执行。
A:错 B:对 4.
update操作激活的触发器属于( )触发器。
A:DCL
B:都不是
C:DDL
D:DML 5.
激活DML触发器时,从触发器表中删除的行会自动存储到名为( )的临时表中。
A:delete
B:inserted
C:insert
D:deleted
6.
激活DML触发器时,触发器表中改后的行会自动复制到名为( )的临时表中。
A:selected
B:inserted
C:deleted
D:updated
7.
现有学生管理数据库,包含三个表,其结构如下,其中加下划线的字段或字段组合为主键。
学生表(学号,姓名,性别,出生日期,班级)
课程表(课程号,课程名,学分)
选课表(学号,课程号,成绩)
下面程序的功能是:创建一个存储过程pcd,用来计算指定课程号的课程的最高分、最低分和平均分,然后执行该存储过程求3-105号课的最高分、最低分和平均分。请将该程序补充完整。
create(1)pcd(@cn char(6))
as
select max(成绩) as 最高分, min(成绩) as 最低分, (2) as 平均分
from 选课表
where (3)
go
exec(4)
A:(4)处填:pcd '3-105' B:(2)处填:avg(成绩) C:(3)处填:课程号=@cn D:(1)处填:proc 8.
设某单位图书借阅库中有下面三个表,其结构如下,其中加下划线的字段或字段组合是主键。
图书表(书号,书名,出版社,作者姓名,单价,总册数,未借册数)
读者表(借书卡号,姓名,部门名,电话)
借阅表(借书卡号,书号,借书日期,应还日期)
下面语句的功能是:创建存储过程pbp,将指定书号的图书的单价改为指定的单价。请将该语句补充完整。
create(1)pbp(@sh char(20)),@dj money)
as
update(2)set(3)where(4)
A:(2)处填:图书表 B:(3)处填:单价=@dj C:(1)处填:procedure D:(4)处填:书号=@sh 9.
现有数据库ordermanagement,包含三个表,其结构如下,其中加下划线的字段或字段组合为主键。
客户表(客户号,客户名,地址,电话)
订单表(订单号,客户号,订购日期)
订单明细表(订单号,器件号,器件名,单价,数量)
下面语句的功能是:创建一个存储过程pkh,用于查询所有客户的信息,客户信息按地址升序排。请将该语句补充完整。
CREATE (1)pkh
AS
SELECT (2)from (3)order by(4)
A:(4)处填:地址 desc
B:(2)处填:* C:(3)处填:客户表 D:(1)处填:PROCEDURE
10.
现有数据库ordermanagement,包含三个表,其结构如下,其中加下划线的字段或字段组合为主键。
客户表(客户号,客户名,地址,电话)
订单表(订单号,客户号,订购日期)
订单明细表(订单号,器件号,器件名,单价,数量)
下面语句的功能是:创建一个存储过程pksm,查询指定客户号的订购总金额,其中订购总金额为输出参数,然后调用该存储过程求“C10001”号客户的订购总金额。请将该程序补充完整。
CREATE PROCEDURE pksm(@kh char(6), @zje float output)
as
SELECT (1)
FROM (2)
WHERE (3)
GO
DECLARE @je float
EXECUTE (4)
SELECT @je as 'C10001号客户的订单总金额'
A:(3)处填:订单表.订单号=订单明细表.订单号 and 客户号=@kh B:(4)处填:pksm 'C10001',@je
C:(1)处填:sum(单价*数量) D:(2)处填:订单表,订单明细表 11.
设某单位图书借阅库中有下面三个表,其结构如下,其中加下划线的字段或字段组合是主键。
图书表(书号,书名,出版社,作者姓名,单价,总册数,未借册数)
读者表(借书卡号,姓名,部门名,电话)
借阅表(借书卡号,书号,借书日期,应还日期)
下面语句的功能是:创建触发器tbk,限定每位读者最多只能借10本书。请将该语句补充完整。
create trigger tbk
on (1)
after (2)
as
begin
declare @bs int
select @bs=count(*) from 借阅表 where 借书卡号=(3)
if @bs>10
begin
print '借书册数不能超过10本!'
(4)
end
end
A:(2)处填:delete B:(1)处填:借阅表 C:(4)处填:return D:(3)处填:SELECT 借书卡号 FROM inserted 12.
设某单位图书借阅库中有下面三个表,其结构如下,其中加下划线的字段或字段组合是主键。
图书表(书号,书名,出版社,作者姓名,单价,总册数,未借册数)
读者表(借书卡号,姓名,部门名,电话)
借阅表(借书卡号,书号,借书日期,应还日期)
下面语句的功能是:创建触发器tjs,使图书表中的未借册数随借书而改变,即当向借书表中添加一条记录表示某位读者借了一本书,图书表中该书的未借册数就减少1。请将该语句补充完整。
create trigger tjs
on(1)
after(2)
as
update 图书表 set(3)where 书号=((4))
A:(2)处填:insert B:(4)处填:select 书号 from deleted C:(3)处填:未借册数=未借册数-1 D:(1)处填:借书表 13.
现有学生管理数据库,包含三个表,其结构如下,其中加下划线的字段或字段组合为主键。
学生表(学号,姓名,性别,出生日期,班级)
课程表(课程号,课程名,学分)
选课表(学号,课程号,成绩)
下面语句的功能是:创建after触发器txm,当向学生表中插入数据时,如果性别正确则插入,否则不允许插入并提示错误。请将该语句补充完整。
create trigger txm
on 学生表
after (1)
as
begin
declare @xb char(2)
select @sb=性别 from (2)
if (3)
begin
print '性别错误!'
(4)
end
end
A:(2)处填:inserted B:(4)处填:return C:(1)处填:insert D:(3)处填:@xb<>'男' or @xb<>'女'
14.
现有学生管理数据库,包含三个表,其结构如下,其中加下划线的字段或字段组合为主键。
学生表(学号,姓名,性别,出生日期,班级)
课程表(课程号,课程名,学分)
选课表(学号,课程号,成绩)
下面语句的功能是:创建AFTER触发器tgxh,当修改学生表中的学号后,该生在选课表中的学号也自动修改,从而实现级联修改。请将该语句补充完整。
CREATE TRIGGER tgxh
ON (1)
FOR(2)
AS
IF UPDATE(学号)
BEGIN
UPDATE 选课表
SET 学号=(3)
WHERE 学号=(4)
END
A:(4)处填:(SELECT 学号 FROM deleted) B:(3)处填:(SELECT 学号 FROM inserted) C:(1)处填:学生表 D:(2)处填:update 15.可以激活DML触发器的语句是( )。
A:delete B:update C:insert D:select