数据库实验-触发器实验
一、实验目的
1.掌握触发器的创建、修改和删除操作。
2.掌握触发器的触发执行。
3.掌握触发器与约束的不同。
二、实验环境
硬件平台:PC;
软件平台:Windows 7 / SQLSERVER 2008 R2;
三、实验内容
1、 在 Student 表中编写 insert 的触发器,假如每个班的学生不能超过 30 个,如果低于此数,添加可以完成;如果超过此数,则插入将不能实现。
2、 在 SC 表上编写 update 触发器,当修改 SC 表中的 Grade 字段时将其修改前后的信息保存在 SC_log 表中。
四、实验过程及结果
- 创建触发器
(1)启动 SQL Server 查询编辑器,“S+学生学号”数据库。
(2)在查询命令窗口中输入以下 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 „ 更新了非成绩列!‟
(3)点击快捷工具栏上的快捷按钮,完成触发器的创建。
2. 触发触发器
(1)在查询命令窗口中输入以下 UPDATE SC 语句,修改成绩列,激发触发器。
UPDATE SC
SET 成绩=成绩+5
WHERE 课程号=‟101‟
(2)在查询命令窗口中输入以下 UPDATE SC 语句修改非成绩列,激发触发器。
UPDATE SC
SET 课程号=‟113‟
WHERE 课程号=‟103‟
(3)在查询命令窗口中输入以下 DELETE SC 语句,删除成绩记录,激发触发器。
DELETE SC
WHERE 课程号=‟102‟
3. 比较约束与触发器的不同作用期
(1)在查询命令窗口中输入并执行以下 ALTER TABLE 语句,为 SC 表添加一个约束,使得成绩只能大于等于 0 且小于等于 100。
ALTER TABLE SC
ADD CONSTRAINT CK_成绩
CHECK(成绩>=0 AND 成绩<=100)
(2)在查询命令窗口中输入并执行以下 UPDATE SC 语句,查看执行结果。
UPDATE SC
SET 成绩=120
WHERE 课程号=‟108‟
(3)在查询命令窗口中输入执行以下 UPDATE SC 语句,查看执行结果。
UPDATE SC
SET 成绩=90
WHERE 课程号=‟108‟
4. 删除新创建的触发器
(1)在查询命令窗口中输入 DROP TRIGGER 语句,删除新创建的触发器。
DROP TRIGGER tri_UPDATE_DELETE_sc
(2)点击快捷工具栏上的快捷按钮,删除触发器。
五、总结
··这次实验是有关触发器的操作。
··触发器是sql server提供给程序员和数据分析员来保证数据完整性的一种的方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。
··触发器可以查询其他表,而且可以包含复杂的SQL语句。触发器与存储过程的唯一区别是触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行。
··通过这次实验,我们做了触发器的创建、修改、和删除操作以及通过一定的操作去检验触发器功是否成功实现。我收获颇多。
数据库实验-触发器实验相关推荐
- 数据库实验系列之3存储过程和触发器实验(存储过程和触发器)
存储过程和触发器实验(存储过程和触发器) 实验9:存储过程实验 实验10:触发器实验 本文最初由security9968发布于security9968的csdn博客,禁止任何形式的剽窃行为 转载原创文 ...
- PostgreSQL数据库触发器实验
PostgreSQL数据库触发器实验 实验目的 (1)掌握触发器的创建.修改和删除操作. (2)掌握触发器的触发执行. (3)掌握触发器与约束的不同. 实验要求 (1)创建触发器. (2)触发器执行触 ...
- 数据库完整性--断言--触发器实验
一.实验目的: (1)理解和掌握数据库完整性–断言–触发器,能够使用SQL语句对数据库完整性–断言–触发器实验操作. (2)掌握SQL语句常见语法错误的调试方法. 二.实验内容: 按照下列要求操作,并 ...
- mysql的触发器实验报告_数据库原理实验报告s11-数据库触发器的创建.doc
数据库原理实验报告s11-数据库触发器的创建.doc 数据库管理系统SQLSERVER实验报告第1页2011年5月4日实验11数据库触发器的建立实验日期和时间20141128实验室软件工程室班级12计 ...
- 《数据库原理》实验六 SQL数据查询实验
本系列传送门: 实验二 SQL Server SSMS工具创建和管理数据库及数据表 实验三 SQL Server SSMS工具添加数据 实验四 SQL的数据定义语句 实验五 数据库完整性约束的实现与验 ...
- 数据库原理及应用实验报告-实验10-触发器
数据库原理及应用实验报告 实验题目 实验10触发器 10.1 实验目的 通过实验使学生加深对数据完整性的理解,学会理解.创建和使用触发器. 10.2 实验内容 (用实验9的Teacher表) (1 ...
- SQL数据恢复总结 - sql server 2012数据库基础-数据恢复-实验报告
数据恢复是对数据库进行备份和还原,当数据库因为各种原因被损坏或者无法读取的时候,会造成无法估量的后果,这个时候就需要数据库还原工具,进行还原. 数据库故障分为"软故障"和" ...
- 数据库概论(实验五)数据库完整性
实验五 数据库完整性 [实验目的] 1.掌握实体完整性约束.参照完整性约束 2.灵活应用自定义完整性约束 3.了解触发器在自定义完整性中的应用 [实验内容] 一.定义一个教师表Teacher(Tno ...
- mysql实训报告_mysql数据库技术》实验报告.doc
mysql数据库技术>实验报告 MySQL数据库技术实验报告 系 别 班 级 学 号 姓 名 地点 地点机房 课程名称 MySQL数据库技术 实验名称 实验1 MySQL的使用 实 验 过 程 ...
最新文章
- iOS 5解决Could not instantiate class named NSLayoutConstraint问题
- java泛型-类型擦除
- scrapy proxy and user_agent
- springcloud 服务与服务之间实现灰度发布 基于Aspect
- memcpy和strcpy的区别 ?
- (网络收藏)WIKI
- Compile、Make和Build的区别(as make, build, clean, run)
- iOS /clang:-1: linker command failed with exit code 1 (use -v to see invocation) 报错
- 本人新书推荐《linux运维之道》
- 阿里、腾讯、华为人力资源体系
- unity相机自由移动
- UCanCode发布跨平台开源组态\ 建模\仿真\工控VX++ 2021
- python统计人物出现次数_python实例:利用jieba库,分析统计金庸名著《倚天屠龙记》中人物名出现次数并排序...
- 知乎自动化登录(2021.3)
- Java自学书籍推荐,java程序员面试算法宝典
- 测试你有学计算机天赋,测试你的天赋,准爆了!
- Python实现和弦查询器(钢琴)
- 国外B端竞品调研网站一网打尽
- Multisim10.0 软件安装教程
- CNNs中,什么是max pooling, 为什么需要max pooling