实验六 并发控制、存储过程和触发器
一、实验目的
1) 掌握用户存储过程、掌握触发器的创建操作。
2) 掌握用户存储过程执行操作、触发器的触发执行。
3) 掌握用户存储过程的删除操作。
4) 掌握触发器与约束的不同。
5) 了解并掌握数据库的并发控制机制。
6) 通过运行存储过程认识并发现象并掌握解决方法。
二、实验内容
1)创建带输入参数的存储过程和嵌套调用的存储过程。
2)执行所创建的存储过程。
3)删除所有新创建的存储过程。
4) 创建触发器。
5) 触发器执行。
6) 验证约束与触发器的不同作用期。
7) 删除新创建的触发器。
8)创建存储过程同时运行,观察丢失修改、读脏数据和不可重读现象
三、实验步骤(步骤中的代码仅供参考,可自行编写代码)
1) 创建触发器
a.启动 SQL Server 查询分析器,打开“SQL 查询分析器”窗口,选择要操作的数据库。
b.在查询命令窗口中输入以下 CREATE TRIGGER 语句,创建触发器。
为 SC 表创建一个基于 UPDATE 操作和 DELETE 操作的触发器,当修改了该表中的成绩信息
或者删除了成绩记录时,触发器激活生效,显示相关的操作信息。
--创建触发器
CREATE TRIGGER tri_UPDATE_DELETE_SC8 ON SC
FOR UPDATE,DELETE
AS
--检测成绩列表是否被更新
IF UPDATE(grade)
BEGIN
--显示学号、课程号、原成绩和新成绩信息
SELECT INSERTED.cno,DELETED.grade AS 原成绩,INSERTED.grade AS 原成绩
FROM DELETED,INSERTED
WHERE DELETED.sno=INSERTED.sno
END
--检测是更新还是删除操作
ELSE IF COLUMNS_UPDATED( )=0
BEGIN
--显示被删除的学号、课程号和成绩信号
SELECT 被删除的学号=DELETED.sno,DELETED.cno,
DELETED.grade AS 原成绩 FROM DELETED
END
ELSE
--返回提示信息