SQL Server2000实验指导NEW实验9触发器_第1页
SQL Server2000实验指导NEW实验9触发器_第2页
SQL Server2000实验指导NEW实验9触发器_第3页
SQL Server2000实验指导NEW实验9触发器_第4页
SQL Server2000实验指导NEW实验9触发器_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验9触发器

在SQLServer中,触发器同存储过程一样重要,它们都是用Tranact-SQL语言所编写的程序。通过本实验来学习、掌握触发器的创建、修改、删除、执行的方法。【知识要点】1.触发器(Trigger)触发器(trigger)是一种特殊类型的存储过程,它也是用Tranact-SQL语言编写的程序。存储过程是由用户利用命令EXECUTE执行它,而触发器是在用户要对某一表内的数据做插入INSERT、更新UPDATE、删除DELETE时被触发执行。通常我们使用触发器来检查用户对数据库表的更新是否合乎整个应用系统的需求和合乎商业规则以维持表内数据的完整性和正确性。2.触发器的作用(1)触发器可通过数据库中的相关表实现级联更改。通过级联引用完整性约束可以更有效地执行这些更改。(2)触发器可以强制比用CHECK约束定义的约束更为复杂的约束。与CHECK约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一个表中的SELECT比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。实验9触发器触发器的主要好处在于它们可以包含使用Transact-SQL代码的复杂处理逻辑。因此,触发器可以支持约束的所有功能(3)触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。(4)一个表中的多个同类触发器(INSERT、UPDATE或DELETE)允许采取多个不同的对策以响应同一个修改语句。3.触发器类型UPDATEINSERTDELETE4.创建触发器的SQL语句CREATETRIGGER触发器名ON{表名|视图名

}

{

{{FOR|AFTER|INSTEADOF}{[INSERT][,UPDATE][,DELETE]}

AS

[{IFUPDATE(列名)[{AND|OR}UPDATE(列名

)]

[...n

]

}]

SQL语句[...n

]

}

}

实验9触发器

5.修改触发器的SQL语句ALTERTRIGGER触发器名

ON{表名|视图名

}

{

{{FOR|AFTER|INSTEADOF}{[INSERT][,UPDATE][,DELETE]}

AS

[{IFUPDATE(列名)[{AND|OR}UPDATE(列名)]

[...n]

}]

SQL语句[...n

]

}

}6.删除触发器的SQL语句

DROPTRIGGER{触发器名

}[,...n

]7.触发器执行的时间(1)在UPDATE、INSERT、DELETE语句执行后自动触发执行。(2)对“FOR|AFTER”选项,触发器表中若定义了约束,则先处理约束,后执行触发器程序。【实验目的】掌握触发器的创建、修改、删除及其使用方法。掌握触发器的功能。

实验9.1创建和执行触发器

【实验目的】掌握使用企业管理器创建触发器;掌握使用SQL创建触发器;掌握触发器的执行。【实验内容】用企业管理器为表S创建一级联更新触发器TRIGGER_S。要求:若修改S表中一学生的学号,则SC表中与该学生相关的学号自动修改。用企业管理器为表SC创建一限制更新触发器TRIGGER_SC。要求:若修改SC表中一记录的学号,则要检查表S中是否存在与该学号相同的记录,若有则不许修改,若没有则可修改。用SQL为表SC创建一触发器Score_sc_tri。要求:当插入一个记录或修改成绩时,确保此记录的成绩在0~100之间。用SQL为表C创建一级联删除触发器TRIGGER_DC:通过课程名从C表中删除某课程信息,同时删除SC表中与此课程相关的选课记录。实验9.1创建和执行触发器

【实验步骤】1.用企业管理器为表S创建一级联更新触发器TRIGGER_S。(1)创建触发器。

创建触发器命令

触发器属性窗口实验9.1创建和执行触发器

创建触发器实验9.1创建和执行触发器(2)验证触发器的作用

表S和表SC中的数据(a)数据表S(b)数据表SC触发器级联更新表S和表SC中的数据(a)数据表S(b)数据表SC实验9.1创建和执行触发器

2.企业管理器为表SC创建一限制更新触发器TRIGGER_SC

要求:若修改SC表中一记录的学号,则要检查表S中是否存在与该学号相同的记录,若有则不许修改,若没有则可修改。(1)创建触发器

(2)验证触发器的作用创建触发器TRIGGER_SC触发器级联更新表S和表SC中的数据(a)数据表S(b)数据表SC实验9.1创建和执行触发器

3.用SQL为表SC创建一触发器Score_sc_tri

要求:当插入一个记录或修改成绩时,确保此记录的成绩在0—100之间。(1)创建触发器数据库jxsk的触发器对象创建触发器的SQL实验9.1创建和执行触发器

3.用SQL为表SC创建一触发器Score_sc_tri

要求:当插入一个记录或修改成绩时,确保此记录的成绩在0~100之间。(2)验证触发器的作用

验证触发器的SQL操作操作后的表SC数据表SC的数据表实验9.1创建和执行触发器

4.用SQL为表C创建一个级联删除触发器TRIGGER_DC:通过课程名从C表中删除某课程信息,同时删除SC表中与此课程相关的选课记录(1)创建触发器

执行SQL创建触发器

数据库jxsk中的触发器实验9触发器

(2)验证触发器的作用。

为执行删除SQL时表C和SC数据窗口(a)表C数据窗口(b)表SC数据窗口对表C执行删除SQL实验9触发器

(a)C表数据

删除记录后的C和SC表数据(b)SC表数据实验9.2修改触发器【实验目的】掌握使用企业管理器修改触发器;掌握使用SQL修改触发器。【实验内容】用企业管理器修改触发器TRIGGER_S。要求:若删除表S中某一个学生的记录信息,则自动删除SC表中与学生相关的记录信息。用SQL修改表C的触发器TRIGGER_DC:通过课程名从C表中删除某课程信息,同时删除SC表和TC表中与此课程相关的记录。

实验9.2修改触发器

【实验步骤】1.用企业管理器修改表S的触发器TRIGGER_S

创建触发器命令

触发器属性窗口把文本框中的SQL语句修改成下面的内容:CreatetriggerTRIGGER_SOnSForDELETEAsdeclare@SNO_DELCHAR(2)Select@SNO_DEL=SNOfromDELETEDDELETEfromSCwhereSNO=@SNO_DEL实验9.2修改触发器

2.用SQL修改表C的触发器TRIGGER_DC:要求:通过课程名从C表中删除某课程信息,同时删除SC表和TC表中与此课程相关的记录。在查询窗口中输入下面SQL语句:USEjxskGOAltertriggerTRIGGER_DCOnSCForDELETEAsdeclare@CNO_DELCHAR(2)Select@CNO_DEL=CNOfromDELETEDDELETEfromSCWHERECNO=@CNO_DELDELETEfromTCWHERECNO=@CNO_DELGO实验9.3删除触发器

【实验目的】掌握使用企业管理器删除触发器;掌握使用SQL删除触发器。【实验内容】用企业管理器删除表S的触发器TRIGGER_S。;用SQL删除表C的触发器TRIGGER_DC。【实验步骤】1.用企业管理器删除表S的触发器TRIGGER_S

删除触发器TRIGGER_S实验9.3删除触发器

2.用SQL删除表C的触发器TRIGGER_DC。在查询窗口中输入下面SQL语句:USEjxskDROPTRIGGERTRIGGER_DCGO实验9习题

【实验题报告】内容与要求基于实验六中的“教学数据库jxsk”,创建下面触发器,并给出正反实例:1.为表SC创建一触发器:当插入或修改一个记录时,确保此记录的成绩在0—100之间。2.为教师表T创建一触发器:男职工年龄不能超过60周岁,女职工职称是“教授”的年龄不超过60岁,其他女职工年龄不能超过55岁。3.为表C、表TC和表SC创建参照完整性:级联删除和级联修改触发器。4.为表T创建一触发器:当职称从“讲师”晋升为“副教授”时,岗位津贴自动增加500元;从“副教授”晋升为“教授”时,岗位津贴自动增加8900元。5.为表SC创建一触发器,将成绩按下列对应关系由分数转换成等级:小于60分:不及格;60—70分:及格;70—80:中;80—90分:良;90以上:优。实验9习题

【思考题】1.你认为用触发器都能定义哪些约束?答:

。2.都可以为哪些操作创建触发器?可以为查询操作创建触发器吗?答:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论