一、实验目的
1.掌握触发器的创建、修改和删除操作。
2.掌握触发器的触发执行。
3.掌握触发器与约束的不同。
二、实验环境
硬件平台:PC;
软件平台:Windows 7 / SQLSERVER 2008 R2;
三、实验内容
1、 在 Student 表中编写 insert 的触发器,假如每个班的学生不能超过 30 个,如果低于此数,添加可以完成;如果超过此数,则插入将不能实现。

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

四、实验过程及结果

  1. 创建触发器
    (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语句时自动触发执行。
··通过这次实验,我们做了触发器的创建、修改、和删除操作以及通过一定的操作去检验触发器功是否成功实现。我收获颇多。

数据库实验-触发器实验相关推荐

  1. 数据库实验系列之3存储过程和触发器实验(存储过程和触发器)

    存储过程和触发器实验(存储过程和触发器) 实验9:存储过程实验 实验10:触发器实验 本文最初由security9968发布于security9968的csdn博客,禁止任何形式的剽窃行为 转载原创文 ...

  2. PostgreSQL数据库触发器实验

    PostgreSQL数据库触发器实验 实验目的 (1)掌握触发器的创建.修改和删除操作. (2)掌握触发器的触发执行. (3)掌握触发器与约束的不同. 实验要求 (1)创建触发器. (2)触发器执行触 ...

  3. 数据库完整性--断言--触发器实验

    一.实验目的: (1)理解和掌握数据库完整性–断言–触发器,能够使用SQL语句对数据库完整性–断言–触发器实验操作. (2)掌握SQL语句常见语法错误的调试方法. 二.实验内容: 按照下列要求操作,并 ...

  4. mysql的触发器实验报告_数据库原理实验报告s11-数据库触发器的创建.doc

    数据库原理实验报告s11-数据库触发器的创建.doc 数据库管理系统SQLSERVER实验报告第1页2011年5月4日实验11数据库触发器的建立实验日期和时间20141128实验室软件工程室班级12计 ...

  5. 《数据库原理》实验六 SQL数据查询实验

    本系列传送门: 实验二 SQL Server SSMS工具创建和管理数据库及数据表 实验三 SQL Server SSMS工具添加数据 实验四 SQL的数据定义语句 实验五 数据库完整性约束的实现与验 ...

  6. 数据库原理及应用实验报告-实验10-触发器

    数据库原理及应用实验报告 实验题目  实验10触发器 10.1 实验目的 通过实验使学生加深对数据完整性的理解,学会理解.创建和使用触发器. 10.2 实验内容  (用实验9的Teacher表) (1 ...

  7. SQL数据恢复总结 - sql server 2012数据库基础-数据恢复-实验报告

    数据恢复是对数据库进行备份和还原,当数据库因为各种原因被损坏或者无法读取的时候,会造成无法估量的后果,这个时候就需要数据库还原工具,进行还原. 数据库故障分为"软故障"和" ...

  8. 数据库概论(实验五)数据库完整性

    实验五  数据库完整性 [实验目的] 1.掌握实体完整性约束.参照完整性约束 2.灵活应用自定义完整性约束 3.了解触发器在自定义完整性中的应用 [实验内容] 一.定义一个教师表Teacher(Tno ...

  9. mysql实训报告_mysql数据库技术》实验报告.doc

    mysql数据库技术>实验报告 MySQL数据库技术实验报告 系 别 班 级 学 号 姓 名 地点 地点机房 课程名称 MySQL数据库技术 实验名称 实验1 MySQL的使用 实 验 过 程 ...

最新文章

  1. iOS 5解决Could not instantiate class named NSLayoutConstraint问题
  2. java泛型-类型擦除
  3. scrapy proxy and user_agent
  4. springcloud 服务与服务之间实现灰度发布 基于Aspect
  5. memcpy和strcpy的区别 ?
  6. (网络收藏)WIKI
  7. Compile、Make和Build的区别(as make, build, clean, run)
  8. iOS /clang:-1: linker command failed with exit code 1 (use -v to see invocation) 报错
  9. 本人新书推荐《linux运维之道》
  10. 阿里、腾讯、华为人力资源体系
  11. unity相机自由移动
  12. UCanCode发布跨平台开源组态\ 建模\仿真\工控VX++ 2021
  13. python统计人物出现次数_python实例:利用jieba库,分析统计金庸名著《倚天屠龙记》中人物名出现次数并排序...
  14. 知乎自动化登录(2021.3)
  15. Java自学书籍推荐,java程序员面试算法宝典
  16. 测试你有学计算机天赋,测试你的天赋,准爆了!
  17. Python实现和弦查询器(钢琴)
  18. 国外B端竞品调研网站一网打尽
  19. Multisim10.0 软件安装教程
  20. CNNs中,什么是max pooling, 为什么需要max pooling

热门文章

  1. 菜鸟菜鸟菜鸟菜鸟编程之路
  2. 如何添加其他网段的打印机
  3. Java毕设项目线上教学平台(java+VUE+Mybatis+Maven+Mysql)
  4. 如何提高小学生写作文的能力
  5. 山寨芯片不会像山寨机一样泛滥
  6. 偷偷学Python,怎么高空建楼(Python自动化办公实现批量替换Word)
  7. Java编程那些事儿11——JDK的获得、安装和配置
  8. java 反射为何耗性能_Java反射的性能成本
  9. 杰里最新的 授权工具版本【篇】
  10. Excel自动打开、刷新、保存