触发器应用举例

上传人:hs****ma 文档编号:473471584 上传时间:2022-11-10 格式:DOC 页数:4 大小:38.50KB
返回 下载 相关 举报
触发器应用举例_第1页
第1页 / 共4页
触发器应用举例_第2页
第2页 / 共4页
触发器应用举例_第3页
第3页 / 共4页
触发器应用举例_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《触发器应用举例》由会员分享,可在线阅读,更多相关《触发器应用举例(4页珍藏版)》请在金锄头文库上搜索。

1、触发器应用举例1. 使用INSERT触发器例1:建立一个触发器,当向sc表中添加数据时,如果添加的数据与student表中的数据不匹配(没有对应的学号),则将此数据删除。CREATE TRIGGER sc_ins ON sc FOR INSERT ASBEGIN DECLARE bh char(5) Select bh=Inserted.sno from Inserted If not exists(select sno from student where student.sno=bh) Delete from sc where sno=bhEND例2:创建一个触发器,当插入或更新成绩列时,

2、该触发器检查插入的数据是否处于设定的范围内。程序清单如下:CREATE TRIGGER sc_insupd ON sc FOR INSERT, UPDATEASDECLARE cj intSELECT cj=inserted.grade from insertedIF (cj100) BEGIN RAISERROR(成绩的取值必须在0到100之间,16, 1) ROLLBACK TRANSACTIONEND例3:创建一个修改触发器,防止用户修改表student的学生姓名。程序清单如下:create trigger student_update on student for updateas i

3、f update(sname) begin raiserror(不能修改学生姓名,10,1) rollback transaction end go注:函数update(column)为指示是否对表或视图的指定列进行了 INSERT 或 UPDATE 尝试,返回一个布尔值 。 例4: 建立一个与student表结构一样的表s1,当删除表student中的记录时,自动将删除掉的记录存放到s1表中。程序清单如下:Use studentSelect * into s1 from studentDelete from s1GoCREATE TRIGGER tr_delete ON student FO

4、R DELETEASinsert into s1 select * from deleted /*将删除掉的数据送入表s1中*/GO例5:当删除表student中的记录时,自动删除表sc中对应学号的记录。程序清单如下:CREATE TRIGGER delete_student ON student FOR DELETEBEGIN DECLARE bh char(5) Select bh=deleted.sno from deleted Delete from sc where sno=bhEND本题是课本例题11的另外一种表示办法例6:使用 DDL 触发器来防止数据库中的任一表被修改或删除。 程序清单如下:CREATE TRIGGER safety ON DATABASE FOR DROP_TABLE, ALTER_TABLE ASbegin PRINT You must disable Trigger safety to drop or alter tables! ROLLBACK transactionend

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号