数据库原理实验报告S11-数据库触发器的创建.

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验主要任务:

导入学生成绩数据库,并建立相关表的关系,对数据库实施如下操作:

一、利用SQL Server管理控制台创建DML触发器中的INSERT触发器的后(AFTER)触发器

1. 利用SQL-SERVER管理控制台:创建一个INSERT触发器“TR_Course_Insert”,当在课程表中插入一条新记录时,触发该触发器,并给出“你插入了一条新的课程记录!”的提示信息。

2.创建了TR_Course_Insert触发器后,查看向课程表中插入数据时,此触发器所完成的功能。

二、使用Transact-SQL语句创建DML的后(FOR、AFTER)触发器

(一)实现检查约束

3. 创建一个AFTER触发器,要求实现以下功能:在成绩表上创建一个插入、更新类型的触发器TR_ScoreCheck,当在成绩字段中插入或修改考试分数后,触发该触发器,检查分数是否在0-100之间。

create trigger TR_ScoreCheck

on成绩

for insert,update

as

if(select成绩from inserted)between 0 and 100

begin

print'你成功的对成绩表插入(更新)了一条记录'

end

else

begin

print'(插入)更新的成绩数据错误'

rollback transaction

end

在创建了TR_ScoreCheck触发器之后,在查询窗口中输入以下SQL语句验证:

(独立完成:4.创建一个AFTER触发器,要求实现以下功能:在2003学生名单表上创建一个插入、更新类型的触发器TR_Sex_Check,当在性别字段中插入或修改性别后,触发该触

发器,检查性别是否是‘男’或‘女’,并验证)set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go

ALTER trigger [TR_Sex_Check]

on [dbo].[学生名单]

for insert,update

as

if(select性别from inserted)in('男','女')

begin

print'插入(更新)数据'

end

else

begin

print'插入或更新的性别错误'

rollback transaction

end

(二)实现层叠修改

5.创建一个AFTER触发器,要求如下:在学生表上创建一个删除类型的触发器TR_Stu_Delete,当在学生表中删除某一条记录后,触发该触发器,在成绩表中删除与此学号对应的记录。

create trigger TR_Stu_Delete

on学生

for delete

as

begin

delete

from成绩

where学号=(select学号from deleted)

end

在创建了TR_Stu_Delete触发器之后,在查询窗口中输入以下SQL语句验证:

(独立完成:6.创建一个AFTER触发器,要求实现以下功能在2003班级表上创建一个删除类型的触发器TR_Class_Delete,当在2003班级表中删除某一条记录后,触发该触发器,在2003学生名单中删除与此学号对应的记录。并验证)

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go

ALTER trigger [TR_Class_Delete]

on [dbo].[班级]

for delete

as

begin

delete

from学生名单

where班级=(select班级from deleted)

end

三、使用Transact-SQL语句创建DML的前(INSTEAD OF)触发器

7.创建一个INSTEAD OF触发器,要求实现以下功能:在课程表上创建一个删除类型的触发器TR_NotAllowDelete,当在课程表中删除记录时,触发该触发器,显示不允许删除表中数据的提示信息。

在创建了TR_Stu_Delete触发器之后,在查询窗口中输入以下SQL语句验证:

四、查看和修改触发器

(一)利用SQL Server管理控制平台查看

8.使用SQL Server管理控制台查看TR_Course_Insert触发器并查看与该触发器有依赖关

系的其他数据库对象

(二)使用系统存储过程查看触发器

可以使用系统存储过程sp_help、sp_helptext和sp_depends分别查看触发器的不同信息。

它们的具体用途和语法形式如下:

sp_help:用于查看触发器的一般信息,如触发器的名称、属性、类型和创建时间。

sp_help ‘触发器名称’

sp_helptext:用于查看触发器的正文信息。

sp_depends:用于查看触发器涉及到的所有表。

9.使用系统存储过程查看TR_Course_Insert触发器的一般信息

10.使用系统存储过程查看TR_Stu_Delete触发器涉及到的所有表。

11.使用系统存储过程查看TR_Stu_Delete触发器的正文信息

五、删除触发器

12.用系统命令DROP TRIGGER 触发器名删除TR_Course_Inser

相关文档
最新文档