SQLServer2008数据库应用教程课后答案(5)
略
第8章 存储过程、函数和触发器
一、填空题
1.服务器;客户
2.系统存储过程;用户自定义存储过程;临时存储过程;远程存储过程;扩展存储过程
3.局部临时存储过程;全局临时存储过程 4.#;##
5.输入参数;输出参数 6.RETURN
7.ALTER PROCEDURE
8.函数名;参数;编程语句;返回值 9.事件;命令
10.INSTEAD OF触发器;AFTER触发器;CLR触发器 11.原子性;一致性;隔离性;持久性 12.显式事务;隐式事务
13.ROLLBACK TRANSACTION
二、选择题
1.B 2.B 3.D 4.C 5.B 6.B 7.C
三、判断题
1.A 2.B 3.A 4.B
四、问答题
1.答
使用SQL Server中的存储过程而不使用存储在客户计算机本地的Transact-SQL程序的优势有:
(1)允许模块化程序设计
只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。
(2)允许更快执行
如果某操作需要大量Transact-SQL代码或需重复执行,存储过程将比Transact-SQL批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行Transact-SQL语句时,都要从客户端重复发送,并且在SQL Server每次执行这些语句时,都要对其进行编译和优化。
(3)减少网络流量
一个需要数百行Transact-SQL代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。
(4)可作为安全机制使用
16
即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。
2.答
触发器是一种特殊类型的存储过程,它在指定表中的数据发生变化时自动执行。触发器与普通存储过程的不同之处在于:触发器的执行是由事件触发的,而普通存储过程是由命令调用执行的。
3.答
? 触发器是自动执行的,不需要管理员手动维护数据库的数据完整性。
? 触发器可以对数据库中的相关表进行级联更改。例如,可以在表Departments中定
义触发器,当用户删除表Departments中的记录时,触发器将删除表Employees中对应部门的记录。
? 触发器可以限制向表中插入无效的数据,这一点与CHECK约束的功能相似。但在
CHECK约束中不能使用到其他表中的字段,而在触发器中则没有此限制。例如,可以在表Employees中定义触发器,限制插入的记录其Dep_id字段值必须在表Departments中存在对应的记录。
五、上机练习题
(一)存储过程
1.答:
USE HrSystem
GO
IF EXISTS (SELECT name FROM sysobjects WHERE name ='avg_wage' AND type = 'P') DROP PROCEDURE avg_wage GO
CREATE PROC avg_wage @avgwage FLOAT OUTPUT AS
SELECT @avgwage=AVG(wage) FROM Employees
2.答:
DECLARE @avgwage FLOAT EXEC avg_wage @avgwage OUTPUT PRINT @avgwage
3.答:
USE HrSystem
GO
IF EXISTS (SELECT name FROM sysobjects WHERE name ='max_wage' AND type = 'P') DROP PROCEDURE max_wage GO
CREATE PROC max_wage
17
@depname char(50), @maxwage FLOAT OUTPUT AS
SELECT @maxwage=MAX(e.wage) FROM Employees e INNER JOIN Departments d ON e.Dep_id=d.Dep_id WHERE d.Dep_name=@depname
4.答:
DECLARE @maxwage FLOAT,@depname CHAR(50) EXEC max_wage '财务部', @maxwage OUTPUT PRINT @maxwage
5.答:
DROP PROCEDURE avg_price,max_wage
(二)触发器
1.答:
(1)创建触发器语句
USE 学生信息
IF EXISTS(SELECT name FROM sysobjects WHERE name = 'TRG1' AND type = 'TR') DROP TRIGGER TRG1 GO
CREATE TRIGGER TRG1 ON 专业 FOR INSERT AS
SELECT * FROM inserted
(2)测试语句
INSERT INTO 专业 VALUES('111','新专业名称','001')
(3)测试结果
在“网格”选项卡上显示:
在“消息”选项卡上显示:
(所影响的行数为 1 行)
2.答:
(1)创建触发器语句
USE 学生信息
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'TRG2' AND type = 'TR') DROP TRIGGER TRG2 GO
CREATE TRIGGER TRG2 ON 专业 FOR DELETE AS
RAISERROR ('不允许删除专业表中的记录',16,1) SELECT * FROM deleted
ROLLBACK TRANSACTION --回滚事务
(2)测试语句
18
DELETE FROM 专业 WHERE 专业编号='111'
(3)测试结果
在“消息”选项卡上显示:
服务器: 消息 50000,级别 16,状态 1,过程 TRG2,行 4 不允许删除专业表中的记录
(所影响的行数为 1 行)
在“网格”选项卡上显示:
3.答:
(1)创建触发器语句
USE 学生信息
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'TRG3' AND type = 'TR') DROP TRIGGER TRG3 GO
CREATE TRIGGER TRG3 ON 专业 FOR UPDATE AS
IF UPDATE(专业名称) BEGIN
RAISERROR('不能修改专业名称',15,1) ROLLBACK TRANSACTION END
(2)测试语句
UPDATE 专业 SET 专业名称='新专业名称B' WHERE 专业编号='111'
(3)测试结果
在“消息”选项卡上显示:
服务器: 消息 50000,级别 15,状态 1,过程 TRG3,行 6 不能修改专业名称
4.答:
(1)创建触发器语句
USE 学生信息
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'TRG4' AND type = 'TR') DROP TRIGGER TRG4 GO
CREATE TRIGGER TRG4 ON 学生基本信息 FOR UPDATE AS
IF UPDATE(学号) OR UPDATE (姓名) BEGIN
RAISERROR('注意,不允许修改学号或姓名',15,1)
19
ROLLBACK TRANSACTION END
(2)测试语句
① UPDATE 学生基本信息 SET 学号='990020211' WHERE 学号='990020210' ② UPDATE 学生基本信息 SET 姓名='张三' WHERE 学号='990020210'
(3)测试结果
服务器: 消息 50000,级别 15,状态 1,过程 TRG4,行 7 注意,不允许修改学号或姓名
5.答:
DROP TRIGGER TRG1,TRG2,TRG3,TRG4,TRG5
第9章 游标管理
8.3 练习题
一、填空题
1.Transact-SQL 游标;应用编程接口(API)服务器游标;客户端游标 2.静态游标;动态游标;只进游标;键集驱动游标 3.OPEN 4.SCROLL 5.FETCH …… 此处隐藏:1685字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




