文档详情

数据库原理及应用教程(第5版)(微课版)第7章习题答案.pdf

发布:2025-04-07约2.95千字共6页下载文档
文本预览下载声明

第7章习题答案:

一、选择题

1.B2.A3.D4.C5.B6.A7.C8.A9.B10.B

11.D12.A13.C14.D15.B

二、填空题

1.局部全部

2.--/**/

3.DECLARE

4.AFTERINSTEADOF

5.DML触发器、DDL触发器、登录触发器

6.DELETEDINSERTED

7.4

8.EXECsp_stored_procedures

9.EXECsp_helptextProc1

10.CASTASDATE)或CONVERT(DATE

三.简答题

1.答:触发器是一种由Transact-SQL语句编写的、存储在数据库或相应的数据表中的

特殊的存储过程,但它的执行不是用EXECUTE命令显式调用,而是在满足一定条件下自动

激活而执行,如向表中插入﹑更新或者删除记录时被系统自动地激活并执行,根据激活情况

的不同,可以创建DML触发器、DDL触发器和登录触发器。

触发器的主要作用:

当对数据库或数据表进行相关操作时,如满足激发的条件,触发器可以被自动激发而执

行,因此,可以有针对性地创建相关的触发器,起到以下主要作用

(1)对数据表的INSERT、UPDATE和DELETE操作进行限制或进行相关的操作,维

护数据表之间的连接关系或数据完整性,可以防止恶意的或错误的数据表记录操作。

(2)将用户对数据库的操作约束在一定的条件范围内,如防止误删数据表、修改数据

表或增加数据表等。

2.答:存储过程具有以下优点:

(1)增强了SQL语言的功能和灵活性。存储过程中可用流程控制语句对SQL语句的

执行流程进行控制,有很强的灵活性,可以实现复杂的功能。

(2)可被多次重复调用。创建好的存储过程被存储在其隶属的数据库中,以后可以被

多次调用。

(3)能实现更快的执行速度。存储过程是预编译的,存储过程在创建时,SQLServer

就对其进行编译、分析和优化,并且给出最终被存储在系统表中的执行计划。在第一次被执

行后,存储过程就存储在服务器的内存中,这样应用程序在执行时就可以直接调用内存中的

代码执行,无须再次进行编译,这就大大加快了执行速度。

(4)减少网络流量。对存储过程的调用,网络中传送的只是调用语句,而不需要在网

络中传送存储过程中的每一条SQL语句代码,从而大大降低了网络流量。

(5)存储过程可作为一种安全机制来利用。可设定只有某用户才具有对指定存储过程

的使用权,从而实现对相应数据访问权限的限制,避免了非授权用户对数据的访问,保证了

数据的安全性。

存储过程的缺点

(1)移植性差。在某种数据库系统上编写的存储过程,难以直接移植到另外一种数据

库系统中。

(2)难以调试、维护。由于数据库系统一般没有自带的较好的调试器,对代码功能的

调试不方便。

(3)无法应用缓存。只能使用全局临时表之类的方法可以做数据缓存,但这样加重了

数据库服务器的负担。

(4)服务器不能负载均衡。存储过程的执行全部在服务器端完成,这就把业务处理的

负担压在数据库服务器上了,无法通过中间层来灵活分担负载和压力均衡负载等。

3.答:创建触发器t_tr的代码如下所示:

USETeachingDB

GO

CREATETRIGGERt_trONT

AFTERDELETE

AS

DELETEFROMTC

WHERET.TNo

IN(SELECTTNoFROMDELETED)

GO

4.答:创建触发器db_tr的代码如下所示:

USETeachingDB

GO

CREATETRIGGERdb_tr

ONDATABASE

FORCREATE_TABLE

AS

PRINT不能创建数据库表!

ROLLBACK

GO

5.答:创建函数CountStudents的代码如下所示:

USETeachingDB

GO

CREATEFUNCTIONCoun

显示全部
相似文档