数据库实验指导—SQL - Server - 2008(6)

2019-04-23 10:11

实验4 触发器和存储过程实验

4.1 触发器实验

一、实验目的

? 掌握触发器的创建、修改和删除操作。 ? 掌握触发器的触发执行。 ? 掌握触发器与约束的不同。

二、实验要求

1.创建触发器。

2.触发器执行触发器。

3.验证约束与触发器的不同作用期。 4.删除新创建的触发器。

三、实验内容

(一)示例

1.创建触发器

①启动SQL Server 查询编辑器,选择要操作数据库,如“sc(学生选课)”数据库。 ②在查询命令窗口中输入以下CREATE TRIGGER语句,创建触发器。

为sc(学生选课)表创建一个基于UPDATE操作和DELETE操作的复合型触发器,当修改了该表中的成绩信息或者删除了成绩记录时,触发器被激活生效,显示相关的操作信息。

--创建触发器

CREATE TRIGGER tri_UPDATE_DELETE_sc ON sc

FOR UPDATE,DELETE AS

--检测成绩列表是否被更新 IF UPDATE(成绩) BEGIN

--显示学号、课程号、原成绩和新成绩信息 SELECT INSERTED.课程号,DELETED.成绩AS原成绩, INSERTED.成绩AS新成绩 FROM DELETED ,INSERTED

WHERE DELETED.学号=INSERTED.学号 END

--检测是更新还是删除操作 ELSE IF COLUMNS_UPDATED( )=0 BEGIN

--显示被删除的学号、课程号和成绩信号

SELECT 被删除的学号=DELETED.学号,DELETED.课程号, DELETED.成绩AS原成绩 FROM DELETED END ELSE

--返回提示信息 PRINT ‘ 更新了非成绩列!’

③点击快捷工具栏上的快捷按钮,完成触发器的创建。 2.触发触发器

①在查询命令窗口中输入以下UPDATE sc语句,修改成绩列,激发触发器。

UPDATE sc

SET成绩=成绩+5

WHERE 课程号=’101’

②在查询命令窗口中输入以下UPDATE sc语句修改非成绩列,激发触发器。

UPDATE sc

SET 课程号=’113’ WHERE 课程号=’103’

③在查询命令窗口中输入以下DELETE sc 语句,删除成绩记录,激发触发器。

DELETE sc

WHERE 课程号=’102’

3. 比较约束与触发器的不同作用期

①在查询命令窗口中输入并执行以下ALTER TABLE 语句,为sc表添加一个约束,使得成绩只能大于等于0且小于等于100。

ALTER TABLE sc

ADD CONSTRAINT CK_成绩

CHECK(成绩>=0 AND成绩<=100)

②在查询命令窗口中输入并执行以下UPDATE sc语句,查看执行结果。

UPDATE sc SET成绩=120

WHERE 课程号=’108’

③在查询命令窗口中输入执行以下UPDATE sc语句,查看执行结果。

UPDATE sc SET成绩=90

WHERE 课程号=’108’

从这部分实验中,我们可以看到,约束优先于触发器起作用,它在更新前就生效,以对要更新的值进行规则检查。当检查到与现有规则冲突时,系统给出错误消息,并取消更新操作。如果检查没有问题,更新被执行,当执行完毕后,再激活触发器。

4. 删除新创建的触发器

①在查询命令窗口中输入DROP TRIGGER 语句,删除新创建的触发器。

DROP TRIGGER tri_UPDATE_DELETE_sc

②点击快捷工具栏上的快捷按钮,删除触发器。 (二)练习

1.在Student表中编写insert的触发器,假如每个班的学生不能超过30个,如果低于

此数,添加可以完成;如果超过此数,则插入将不能实现。

2.在SC表上编写update触发器,当修改SC表中的grade字段时将其修改前后的信息保存在SC_log表中。

四、实验报告要求

1、写出与上述任务相对应的SQL语句

2、并记录在实验过程中遇到的问题、解决办法及心得体会。

4.2存储过程实验

一、实验目的

? 掌握用户存储过程的创建操作。 ? 掌握用户存储过程的执行操作。 ? 掌握用户存储过程的删除操作。

二、实验内容

1、创建带输入参数的存储过程的存储过程。 2、执行所创建的存储过程。 3、删除所有新创建的存储过程。

三、实验步骤

对应于student数据库

(1) 创建一个无参存储过程StuScoreInfo,查询以下信息:学号,姓名,性别,课程名称,考试成绩. (2) 创建一个带参数的存储过程stu_info,该存储过程根据传入的学生编号在student表中查询此学生的信息.

(3) 创建一个带参数的存储过程StuScoreInfo2,该存储过程根据传入的学生编号和课程名称查询以下信息:姓名,课程名称,考试成绩.

(4) 编写带参数的存储过程,根据传入的课程名称统计该课程的平均成绩.

(5) 编写存储过程,根据传入的课程名统计这门课的成绩分布情况,即按照各分数段统计人数.

四、实验报告要求

1、写出与上述任务相对应的SQL语句

2、并记录在实验过程中遇到的问题、解决办法及心得体会。

实验5 数据库备份与恢复

一、实验目的

? 熟悉数据库备份及恢复机制;

? 了解SQL Server的数据备份和恢复机制;

? 掌握SQL-Server中数据库备份和恢复的方法。

二、实验内容

以管理员帐号登录SQL Server Management Studio,以原有数据库student为基础,请使用Management Studio界面方式或T-SQL 语句实现以下操作: 1. 针对数据库stu创建完全数据库备份集stu.bak,目标磁盘为D:\\ user \\ stu.bak; 2. 在数据库stu中新建数据表ceshi,内容自定,然后针对数据库stu创建差异备份; 3. 向数据库stu的数据表ceshi插入部分记录,然后针对数据库stu创建事务日志备

份;

4. 根据需要,将数据库恢复到数据库stu的最初状态; 5. 根据需要,将数据库恢复到创建数据表ceshi后的状态; 6. 根据需要,将数据库恢复到在ceshi表插入记录后的状态; 7. 针对现有数据库stu创建完全文件和文件组备份集stu_file,目标磁盘为D:\\ user

\\ stu_file.bak;

8. 在当前数据库中新建数据表ceshi2,然后针对数据库stu创建差异文件和文件组

备份;

9. 向数据库stu的数据表ceshi2插入部分记录,然后针对数据库stu创建事务日志

文件和文件组备份;

10. 根据需要,将数据库以文件和文件组方式恢复到创建数据表ceshi2后的状态; 11. 根据需要,将数据库以文件和文件组方式恢复到数据表ceshi2插入记录后的状态;

三、思考

? 说明数据库的备份和恢复的基本步骤;

? SQL Server中的完全备份、事务日志备份和增量备份形式的功能特点;

四、实验报告要求

1、写出与上述任务相对应的SQL语句

2、并记录在实验过程中遇到的问题、解决办法及心得体会。


数据库实验指导—SQL - Server - 2008(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工程力学与建筑结构在线作业答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: