实验报告三创建和使用触发器.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告三创建和使用触发器

实验报告 实验名称 实验目的: 实验内容:INSERT INTO SC VALUES (200215123,1,89); 例2.创建一个UPDATE触发器,该触发器防止用户修改“选课表”的成绩。 CREATE TRIGGER trgupstudent ON SC FOR UPDATE AS IF UPDATE(Grade) BEGIN RAISERROR(不能修改课程分数,16,10) ROLLBACK TRANSACTION END GO 另外一种触发器: CREATE TRIGGER trgupstudent2 ON SC INSTEAD OF UPDATE AS IF UPDATE(Grade) RAISERROR(不能修改课程分数,16,10) 例3:创建一个DELETE触发器。当删除“学生表”中的记录时,自动删除“选课表”中的对应学号的记录。 CREATE TRIGGER trgdelstudent ON student FOR DELETE AS BEGIN DECLARE @xh varchar(12) SELECT @xh=deleted.Sno FROM deleted DELETE SC WHERE Sno=@xh END GO 例四:创建一个触发器,在STUDENT表中插入记录,当插入年龄大于25时,输出年龄应小于25,插入失败。 create trigger sage on student after insert as if (select sage from inserted )25 begin print(年龄应小于) end 当输入Insert into Student1 values (2007241082 ‘王阳’‘男’ 36 ‘计算机’); 例五:create trigger ss1 on student for insert as begin declare@xh smallint; select@xh=inserted.Sage from inserted; if exists(select sno from student where Sage=@xh) update student set sage=@xh+1 where Sage=@xh; end; 创建触发器如下: 当执行以下语句时 insert into student values(200515125,zp,男,20,ma); 例六:create trigger insert_s on student after insert as begin if (select sage from inserted)20 update student set sage=20 end; 当输入insert into student values (200215129,张琪,男,18,ma) 结果分析 : 1.触发器是一种特殊类型的存储过程。一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过当某个事件发生时自动被触发执行的。触发器可以用于SQL Server约束、默认值和规则的完整性检查,还可以完成难以用普通约束实现的复杂功能。 2.当创建数据库对象或在数据表中插入记录、修改记录或者删除记录时,SQL Server就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合由这些SQL语句所定义的规则。触发器和引起触发器执行的SQL语句被当作一次事务处理,如果这次事务未获得成功,SQL Server会自动返回该事务执行前的状态。 3.触发器是自动的执行的。 触发器可以通过数据库中的相关表进行层叠更改。 触发器可以强制限制。这些限制比用CHECK约束所定义的更复杂。 4.DDL触发器用于响应各种数据定义语言 (DDL) 事件。这些事件主要对应于 Transact-SQL 中的CREATE、ALTER 和 DROP 语句,以及执行类似 DDL 操作的某些系统存储过程。它们用于执行管理任务,并强制影响数据库的业务规则。 5.DML触发器是在用户使用数据操作语言 (DML) 事件编辑数据时发生。DML 事件是针对表或视图的 INSERT、UPDATE 或 DELETE 语句。DML触发器有助于在表或视图中修改数据时强制业务规则,扩展数据完整性。 6.DML触发器又分为AFTER触发器和INSTEAD OF触发器两种: AFTER触发器:这种类型的触发器将在数据变动完成以后才被触发。AFTER触发器只能在表上定义。INSTEAD OF触发器可以在表或视图上定义。每个INSERT、UPDATE和DELETE语句最多定义一个INSTEAD OF触发器。 教 师 评 语

您可能关注的文档

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档