数据库实验三触发器的创建修改及删除
删除和使能触发器

删除和使能触发器删除触发器:DROP TRIGGER trigger_name;当删除其他用户模式中的触发器名称,需要具有DROP ANY TRIGGER系统权限,当删除建立在数据库上的触发器时,用户需要具有ADMINISTER DATABASE TRIGGER系统权限。
此外,当删除表或视图时,建立在这些对象上的触发器也随之删除。
禁用或启用触发器数据库TRIGGER 的状态:有效状态(ENABLE):当触发事件发生时,处于有效状态的数据库触发器TRIGGER 将被触发。
无效状态(DISABLE):当触发事件发生时,处于无效状态的数据库触发器TRIGGER 将不会被触发,此时就跟没有这个数据库触发器(TRIGGER) 一样。
数据库TRIGGER的这两种状态可以互相转换。
格式为:ALTER TIGGER trigger_name [DISABLE | ENABLE ];--例:ALTER TRIGGER emp_view_delete DISABLE;ALTER TRIGGER语句一次只能改变一个触发器的状态,而ALTER TABLE语句则一次能够改变与指定表相关的所有触发器的使用状态。
格式为:ALTER TABLE [schema.]table_name {ENABLE|DISABLE} ALL TRIGGERS;--例:使表EMP 上的所有TRIGGER 失效:ALTER TABLE emp DISABLE ALL TRIGGERS;触发器和数据字典相关数据字典:USER_TRIGGERS、ALL_TRIGGERS、DBA_TRIGGERSSELECT TRIGGER_NAME, TRIGGER_TYPE, TRIGGERING_EVENT,TABLE_OWNER, BASE_OBJECT_TYPE, REFERENCING_NAMES,STATUS, ACTION_TYPEFROM user_triggers;数据库触发器的应用实例用户可以使用数据库触发器实现各种功能:复杂的审计功能;例:将EMP 表的变化情况记录到AUDIT_TABLE和AUDIT_TABLE_V ALUES中。
实训15 创建和使用触发器

专业
班级
姓名
学号
日期
实训室
一、实训目的
1、掌握创建、查看、修改和删除触Βιβλιοθήκη 器的方法2、掌握触发器的使用
二、实训内容
1、使用T-SQL语句创建、查看、修改和删除触发器
2、触发器的使用
三、实训步骤
将“XSGL.xls”文件导入到SQL SERVER中,数据库名为“学生管理”,数据文件和日志文件大小均为1MB
4、在“选课及成绩”表中创建一个“统计成绩和学分”的后触发器,当向该表插入一条记录时,自动计算总评成绩(总评成绩为平时成绩占30%,考试成绩占70%),若总评成绩在60分以上,则自动赋予“课程档案”表中该门课程的相应学分。接着,在“选课及成绩”表中分别插入(0100113,B001,80,86);(0100113,B022,70,50)的记录,以验证该触发器
3、在“选课及成绩”表中创建一个名为“插入选课成绩”的后触发器,当向该表插入一条记录时,检查该记录的“学号”在“学生情况”表中是否存在,“课程号”在“课程档案”表中是否存在,若有一项不满足,则不允许插入,同时要求显示错误信息。接着,试在“选课及成绩”表中插入不同的记录(错误的与正确的,自定义),以验证该触发器
5、在“班级简况”表中创建一个名为“禁止修改”的替代触发器,不允许对该表记录进行修改、删除。接着,试在“班级简况”表中修改或删除某条记录,以验证该触发器
6、禁止使用“班级简况”表中的“禁止修改”触发器,删除班级代号为“10112”的班级记录,删除后再启用触发器
7、查看“禁止修改”触发器的源代码
1、在“学生情况”表中创建一个名为“删除学生”的后触发器,当删除一名学生记录时,同时删除该生在“选课及成绩”表中的相应记录。接着,删除“学生情况”表中学号为“0100001”的学生记录,以验证该触发器
实验三添加修改和删除

任务一:
1.启动DBMS服务器,视情况决定是否附加实验用数据库。
2.利用对象资源管理器,对指定数据库中的表进行数据的添加、修改和删除。
尝试去做一些违反数据库定义中的约束的操作,分析反馈操作信息,并回答思考问题。
3.在查询编辑器中,利用INSERT、DELETE、UPDA TE语句在指定的数据库的相关表中进行如下数据的添加、修改和删除。
对操作中出现的问题进行分析,并加以解决。
在已经创建好的学生选课数据库中的各表中添加样例数据,并更新“学生—课程”数据库。
(1)向学生表S中插入一行数据。
(分析插入数据的学号与已有学号相同或不同时的反馈信息)。
学号相同时:
学号不同时:
(2)根据学生表和课程表生成一个“计算机”系学生的成绩临时表CGRADE,表中包括SN、CNO、GRADE三个属性。
(3)将王玲所学的高等数学成绩改为86.0.
(4)删除成绩低于所有课程平均成绩的选课元组。
(5)设置数据修改和删除的处理策略。
(要求选课表中有S04的选课信息)a.将学生表中学号为S04的学生学号修改为S28。
b.删除学生表中学号为S28的学生信息。
查看执行操作后表SC的变化情况或不能执行操作的反馈信息,并加以分析。
修改和删除触发器

使用企业管理器修改和删除触发器
在SQL Server 2000中,触发器也可以通过可视化的方式修 改和删除,如上图所示。步骤如下:
1)打开企业管理器窗口,展开需要在其中创建触发器的 数据库。
2)点击数据库属下的【表】对象,使右侧的窗格中显示 该数据库的表名或视图名。
3)右键点击右窗格中需要创建触发器的表名,出现快捷 菜单。
SQLServer数据库技术
修改和删除触发器
使用命令方式修改和删除触发器
触发器是可以修改的,修改触发器的命令格式为: ALTER TRIGGER 触发器名 ON 表名[WITH ENCRYPTION] FOR{}DELETE][,][INSERT][,][UPDATE]}[NOT FOR REPLICATION] AS SQL语句 [RETURN] 触发器可以被删除。当与触发器相关的表被删除时,触发 器被自动删除。另外,也可以执行DROP Tห้องสมุดไป่ตู้IGGER语句删除触发 器,其格式为: DROP TRIGGER 触发器名
SQLServer数据库技术
4)选择快捷菜单中的【所有任务】命令,出现级联菜单。 再选择【管理触发器】命令,则打开【触发器属性】窗口,如 前面图所示。
5)在名称框内选择触发器名,如前面图所示。
6)如果修改触发器,则在文本框内直接修改内容即可; 如果删除触发器,直接点击【删除】按钮即可。
7)点击【确定】按钮,返回企业管理器窗口。
数据库实验报告3

数据库实验报告课程:数据库原理及应用正文:一、实验目的1.理解索引和视图的概念。
2.掌握索引的使用方法。
3.掌握视图的定义和使用方法。
4.理解存储过程的概念,掌握存储过程的使用方法。
5.学习触发器的使用,体会触发器执行的时机,加深对触发器功能和作用的理解。
6.理解SQL Server2000验证用户身份的过程,掌握设置身份验证模式的方法。
7.理解登陆账号的概念,掌握混合认证模式下登陆账号的建立与取消方法。
8.掌握混合认证模式下数据库用户的建立与取消。
9.掌握数据库用户权限的设置方法。
10.理解角色的概念,掌握管理角色技术。
11.学会配制ODBC数据源。
了解使用ODBC来进行数据库应用程序设计,通过ODBC接口访问数据库并对数据库进行操作。
学习在Visual Basic中使用ADO控件访问后台的SQL Server数据库。
二、实验内容1.建立索引。
对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。
USE JWGLIF EXISTS(SELECT name FROM sysindexes WHERE name = 'SC_ind')DROP INDEX SC.SC_ind;GOUSE JWGLCREATE INDEX SC_ind ON SC (Cno,Grade DESC);2.视图的定义和操作,(1)在JWGL数据库里,完成第三章例3.54~例3.61例题中视图的定义和视图上的查询、更新操作。
(2)在Market数据库中,完成第三章习题11中(1)中建立视图的操作,然后在视图上完成第三章习题11(2)的查询操作。
3.在数据库JWGL中,完成第四章例1,例3~7中例题的创建存储过程的操作,并使用EXEC语句调用这些存储过程执行,观察他们的执行结果。
4.在Market数据库中,完成第四章习题5中(1)~(4)创建存储过程的操作。
数据库触发器实验实训报告

一、实验背景随着信息技术的飞速发展,数据库技术在各行各业中的应用越来越广泛。
数据库触发器作为数据库管理系统的重要组成部分,具有强大的功能,能够帮助用户实现复杂的数据操作和业务逻辑。
为了提高学生对数据库触发器的理解与应用能力,我们开展了数据库触发器实验实训。
二、实验目的1. 掌握触发器的概念、作用及分类;2. 熟悉触发器的创建、修改和删除操作;3. 学会使用触发器实现业务规则和数据完整性;4. 提高数据库编程能力,为以后的实际工作打下基础。
三、实验环境1. 操作系统:Windows 102. 数据库:MySQL 5.73. 编程语言:Python四、实验内容1. 触发器的基本概念触发器是一种特殊的存储过程,它在特定事件发生时自动执行。
触发器可以分为两大类:DML触发器和DDL触发器。
DML触发器包括INSERT、UPDATE和DELETE触发器,用于在数据操作时执行特定的逻辑;DDL触发器用于在数据定义语言操作时执行特定的逻辑。
2. 触发器的创建以MySQL为例,创建触发器的语法如下:DELIMITER //CREATE TRIGGER 触发器名称BEFORE|AFTER INSERT|UPDATE|DELETE ON 表名BEGIN-- 触发器逻辑END;//DELIMITER ;例如,创建一个名为before_insert_trigger的触发器,在向bookinfo表插入数据之前执行:DELIMITER //CREATE TRIGGER before_insert_triggerBEFORE INSERT ON bookinfoFOR EACH ROWBEGINIF NEW.price > 100 THENSIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Book price should not exceed 100';END IF;END;//DELIMITER ;3. 触发器的修改修改触发器的语法与创建触发器类似,只需要使用ALTER TRIGGER语句:ALTER TRIGGER 触发器名称BEFORE|AFTER INSERT|UPDATE|DELETE ON 表名BEGIN-- 触发器逻辑END;例如,修改上述触发器,限制书籍价格不超过50元:DELIMITER //ALTER TRIGGER before_insert_triggerBEFORE INSERT ON bookinfoFOR EACH ROWBEGINIF NEW.price > 50 THENSIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Book price should not exceed 50';END IF;END;//DELIMITER ;4. 触发器的删除删除触发器的语法如下:DROP TRIGGER IF EXISTS 触发器名称;例如,删除上述触发器:DROP TRIGGER IF EXISTS before_insert_trigger;5. 触发器与存储过程的区别触发器和存储过程都是数据库编程的重要工具,但它们之间存在一些区别:(1)触发器在特定事件发生时自动执行,而存储过程需要手动调用;(2)触发器只能包含一个语句块,而存储过程可以包含多个语句块;(3)触发器不能返回结果集,而存储过程可以返回结果集。
触发器的基本操作

、修改触发器
修改触发器TR_Student_Age_update:
使用系统存储过程查看触发器
查看已建立的Change_Student_Sel触发器所涉及的表
查看已建立的Change_Student_Sel的命令文本
查看已建立的Change_Student_Sel触发器
、删除触发器
数据库原理与应用
实验报告
实验项目名称:触发器的基本操作
实验概述:
1.实验目的
学习与实践对触发器创建、修改、使用、删除等的基本操作。
2.实验要求
在数据库中实现最触发器的创建、修改、使用、查看、删除操作。
3.实验预备知识
触发器是一种特殊类型的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名称而被直接调用。触发器是一个功能强大的工具,它是每个站点可以在有数据修改时自动强制执行其业务规则。触发器可以用于SQL Server约束、默认值和规则的完整性检查。触发器可以强制限制,这些限制比用check约束所定义的更为复杂。
删除前面创建的触发器TR_Student_Age_updatet Studio创建和修改触发器是出现错误,无法完成触发器的创建。
4.实验体会(含已碰到的问题和解决方法)
触发器脚本中的语句修改正确后,可以完成对触发器的创建。
教师评语及成绩
实验内容
1.实验方案设计
对数据库jxgl进行触发器的创建、使用、查看、删除等操作。
2.实验内容与关键SQL语句、实验结果等
(1)、创建触发器
对表Student创建update触发器TR_Student_Age_update:
创建一个触发器,当向Student表中更新一条记录时,自动显示Student表中的记录:
数据库头歌实训触发器的创建和使用

数据库头歌实训触发器的创建和使用数据库头歌是一款广泛应用于企业和个人的开源数据库管理系统软件,其功能强大并且易于使用。
在实际应用中,触发器是数据库头歌中一个重要的功能,可以在特定的数据库操作时自动执行一系列的动作,对数据库进行监控和管理。
本文将介绍数据库头歌实训触发器的创建和使用方法,帮助读者更好地理解和应用触发器功能。
一、触发器的概念和作用触发器是一种特殊的存储过程,它在特定的数据库操作(如插入、更新、删除)发生时自动触发执行。
触发器可以用于监控数据库的变化,执行一些自定义的操作,或者实现数据的约束和一致性。
在实际应用中,触发器常常用于记录数据变更历史、更新相关表的数据、进行数据校验等方面。
二、创建触发器的语法和步骤在数据库头歌中,创建触发器需要遵循一定的语法和步骤,下面是创建触发器的基本语法:CREATE TRIGGER trigger_nameBEFORE/AFTER INSERT/UPDATE/DELETE ON table_nameFOR EACH ROWBEGIN-- 触发器逻辑代码END;其中,trigger_name是触发器的名称,table_name是触发器所属的表,BEFORE/AFTER指定触发器在数据操作之前或之后执行,INSERT/UPDATE/DELETE指定触发器监控的数据库操作类型,FOR EACH ROW表示每行数据发生操作时触发。
触发器逻辑代码可以是一系列的SQL语句,用于处理触发器监控的数据库操作。
创建触发器的步骤如下:1. 连接数据库头歌,选择要创建触发器的数据库。
2. 使用CREATE TRIGGER语句创建触发器,指定触发器的名称、所属表、触发时机和逻辑代码。
3. 执行CREATE TRIGGER语句,成功创建触发器。
三、触发器的使用示例下面通过一个具体的示例来演示数据库头歌实训触发器的创建和使用。
假设有一个学生表(student)和一个成绩表(score),我们希望在学生表插入新记录时自动在成绩表中插入一条初始成绩记录,可以通过触发器来实现这一功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
昆明理工大学信息工程与自动化学院学生实验报告
( 2010 —2011 学年第二学期)
课程名称:数据库高级应用开课实验室:计算中心208 2011年 5月 17日
一、实验目的、要求
目的:了解触发器的功能
掌握触发器的使用方法
要求:实现简单触发器的使用
二、实验所用仪器、材料
微型计算机一台
SQL server 2008
三、实验原理
触发器与存储过程非常相似,触发器也是SQL 语句集,两者惟一的区别是触发器不能用EXECUTE 语句调用,而是在用户执行Transact-SQL 语句时自动触发(激活)执行。
触发器是一个在修改指定表中的数据时执行的存储过程。
经常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性或者一致性。
由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以此确保数据的完整性。
触发器不同于存储过程。
触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。
当对某一表进行诸如UPDATE、INSERT、DELETE 这些操作时,SQL Server 就会自动执行触发
器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。
四、实验过程及数据记录
创建触发器BB(修改表S中的数据时SC中的数据也同时修改了)
CREATE TRIGGER BB ON S FOR UPDATE AS
IF UPDATE(S#)
BEGIN
UPDA TE SC SET SC.S#=A.S#FROM
INSERTED A,DELETED B
WHERE SC.S#=B.S#
END
查看表SC的数据
SELECT*FROM SC
WHERE S#='200510405101'
修改表S中的数据
UPDA TE S
SET S#='000000000000'
查看表SC中的数据(验证触发器的效果)
SELECT*FROM SC
WHERE S#='000000000000'
CREATE TRIGGER AA ON S FOR DELETE AS
DELETE FROM SC WHERE S#IN
(SELECT S#FROM S)
删除触发器BB
DROP TRIGGER BB
五、实验总结
触发器的作用
触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。
它能够对数据库中的相关表进行级联修改,强制比CHECK 约束更复杂的数据完整性,并自定义错误消息,维护非规范化数据以及比较数据修改前后的状态。
与CHECK 约束不同,触发器可以引用其他表中的列。
在下列情况下,使用触发器将强制实现复杂的引用完整性: 强制数据库间的引用完整性。
创建多行触发器,当插入、更新或者删除多行数
据时,必须编写一个处理多行数据的触发器。
执行级联更新或级联删除这样的动作。
级联修改数据库中所有相关表。
撤销或者回滚违反引用完整性的操作,防止非法修改数据。
与存储过程的区别
触发器与存储过程主要的区别在于触发器的运行方式。
存储过程必须由用户、应用程序或者触发器来显示式地调用并执行,而触发器是当特定事件出现的时候,自动执行或者激活的,与连接到数据库中的用户或者应用程序无关。
当一行被插入、更新或者从表中删除时触发器才运行,同时这还取决于触发器是怎样创建的。
在数据修改时,触发器是强制业务规则的一种很有效的方法。
一个表最多有三种不同类型的触发器,当UPDATE 发生时使用一个触发器;DELETE 发生时使用一个触发器;INSERT 发生时使用一个触发器。