内容发布更新时间 : 2024/11/15 0:38:36星期一 下面是文章的全部内容请认真阅读。
第6章 习题解答
1.选择题
(1) ( C )允许用户定义一组操作,这些操作通过对指定的表进行删除、插入和更新命令来执行或触发。
A.存储过程 B.视图 C.触发器 D.索引
(2)SQL Server为每个触发器创建了两个临时表,它们是( B )。
A.Updated和Deleted B.Inserted和Deleted C.Inserted和Updated D.Seleted和Inserted (3)SQL Server中存储过程由一组预先定义并被( C )的Transact-SQL语句组成。
A.编写 B.解释 C.编译 D.保存
(4)下列可以查看表的行数以及表使用的存储空间信息的系统存储过程是( A )。
A.sq_spaceused B.sq_depends C.sq_help D.sq_rename (5)以下语句创建的触发器ABC是当对表T进行__D_____操作时触发。
CREATE TRIGGER ABC ON 表T FOR INSERT, UPDATE, DELETE AS …… A.只是修改 B.只是插入 C.只是删除 D.修改、插入、删除 (6)以下_______不是存储过程的优点。
A.实现模块化编程,能被多个用户共享和重用 B.可以加快程序的运行速度 C.可以增加网络的流量
D.可以提高数据库的安全性
(7)以下_______操作不是触发触发器的操作。
A.SELECT B.INSERT C.DELETE D.UPDATE (8)下面关于触发器的描述,错误的是_______。
A.触发器是一种特殊的存储过程,用户可以直接调用 B.触发器表和deleted表没有共同记录
C.触发器可以用来定义比CHECK约束更复杂的规则 D.删除触发器可以使用DROP TRIGGER命令,也可以使用企业管理器 (9)关于SQL Server中的存储过程,下列说法中正确的是_______。
A.不能有输入参数 B.没有返回值 C.可以自动被执行 D.可以嵌套使用 (10)对于下面的存储过程:
CREATE PROCEDURE Mysp1 @p Int AS SELECT St_name, Age FROM Students WHERE Age=@p
调用这个存储过程查询年龄为20岁的学生的正确方法是_______。 A.EXEC Mysp1 @p='20' B.EXEC Mysp1 @p=20 C.EXEC Mysp1='20' D.EXEC Mysp1=20
1
2.填空题 (1)存储过程(stored procedure)是SQL Server服务器中( 一组预编译的 )Transact-SQL语句的集合。
(2)SQL Server中的存储过程具有如下( 的系统存储过程、用户自定义存储过程、临时存储过程、远程存储过程、扩展存储过程5 )种类型。
(3)创建存储过程实际是对存储过程进行定义的过程,主要包含存储过程名称及其( 参数 )和存储过程的主体两部分。
(4)触发器主要用于强制复杂的( 业务规则 )或要求。
(5)当某个表被删除后,该表上的( 所有触发器 )将自动被删除。
(6)如同表和视图的修改,当需要对存储过程进行修改时,可以通过_______PROCEDURE命令实现。
(7)触发器是针对 INSERT、DELETE和_______语句创建的。
(8)对存储在数据库中的存储过程,可以使用_______命令或直接按其名称执行。 (9)替代触发器(INSTEAD OF)将在数据变动前被触发,对于每个触发操作,只能定义_______个INSTEAD OF 触发器。
(10)要求创建一个存储过程myproc,查询指定班级中选修指定课程的学生人数,并将查询结果通过参数返回。以下过程调用存储过程查询“材料科学0601”班中选修“C语音程序设计基础”的学生人数:
CREATE PROCEDURE [myproc]
@classname VARCHAR(20), @cname VARCHAR(20), @count INT OUTPUT AS
SELECT COUNT(*) FROM S_C_Info sc, st_info s, c_info c WHERE c.c_no=sc.c_no AND s.st_id=sc.st_id AND
s.Cl_Name=@classname AND c.C_Name=@cname
执行这个存储过程的语句段为: DECLARE @count int
EXEC myproc ′材料科学0601班′, ′C语言程序设计基础′, _______ print @count
请在语句的下划线处填入相关内容,完成操作。
2