文档详情

sql触发器存储过程.pptx

发布:2020-02-22约8.68千字共62页下载文档
文本预览下载声明
回顾数据类型常用函数运算符 T-SQL语句威迅教育开发部监制本章内容触发器概念和作用创建、删除、修改触发器解释触发器使用的Inserted和Deleted表说明触发器的触发类型:INSERT、UPDATE和 DELETE解释系统存储过程的类别解释创建、修改和执行用户定义存储过程的过程使用存储过程参数威迅教育开发部监制触发器威迅教育开发部监制问题 ??? 如果我向Top 10业绩表(专门存放前 10 的记录)中添加数据,业绩表中的数据如和来保证我插入的数据都在前 10里面呢?威迅教育开发部监制问题 ??? IBM公司存放员工档案有两张表,在职员工档案表,和退休员工档案表。有一名叫“王肥”的在职员工退修了。那么我们使用SQL语句因该如何去操作?威迅教育开发部监制小李盖慈泽东大熊小刚介石周亮王肥示例问题 EMP 表Ret_Emp 表Derek退休威迅教育开发部监制盖慈大熊泽东小刚王肥周亮示例问题 EMP 表Ret_Emp 表小李触发器触发介石删除插入威迅教育开发部监制什么是触发器 触发器是一种特殊类型的存储过程当使用下面的一种或多种数据修改操作在指定表中对数据进行操作时,触发器会生效:UPDATE、INSERT 或 DELETE。威迅教育开发部监制触发器的概念触发器是在对表进行插入、更新或删除操作时自动执行的存储过程触发器通常用于强制业务规则触发器可以确保数据的完整性和一致性SQL SERVER不支持行级触发器威迅教育开发部监制触发器的用途比较不同版本的数据读取其他数据库的表中的数据在数据库中所有的相关表中级联所作的修改或删除回滚无效的修改强制实现比由CHECK约束提供的限制更为复杂的限制执行本地和远程存储过程威迅教育开发部监制创建触发器触发器可以通过企业管理器或者查询分析器来创建语法:CREATE TRIGGER Trigger_nameON table[WITH ENCRYPTION]FOR [DELETE, INSERT, UPDATE]AS Sql_statements威迅教育开发部监制示例创建触发器在titles表中防止被用户插入和更新数据create trigger tr_titles_1 on titlesfor insert, updateas print 有触发器约束你向这个表插入或更新记录 ROLLBACK TRANSACTION --取消前面的操作go威迅教育开发部监制创建触发器的注意事项触发器可以与对表执行的三个操作(INSERT、 UPDATE 和 DELETE)相关联一个触发器只应用于单独一个表WITH ENCRYPTION选项可用于对用户隐藏触发器 的定义。但是,加密的触发器无法进行解密触发器可以引用视图或临时表,但不能和它们相关联触发器可以包含任意数量的 SQL 语句默认情况下,只有数据库所有者才具有创建触发器的权限。此权限不可转让。触发器只能在当前数据库中创建。 但是,触发器可以引用其他数据库中的对象。威迅教育开发部监制触发器的类型insert触发器update触发器delete触发器威迅教育开发部监制触发器的两张特殊表 触发器可以访问两个逻辑表 Inserted 表:包含更新前的数据映像 Deleted 表:包含更新后的数据映像Inserted和Deleted表中不包含表中不受更新操作 影响的数据威迅教育开发部监制Inserted 和Deleted 表create table TriggerTest ( vid varchar(20) not null, vname varchar(20) not null )gocreate trigger TestUpdateon TriggerTestfor updateas select * from deleted --更新前的记录信息 select * from inserted--更新后的记录信息 print records updatego威迅教育开发部监制Inserted 和Deleted 表create trigger TestInsert on triggertestfor insertas select * from inserted --插入的记录信息 print records insertgoCreate trigger TestDelete on triggerTestfor deleteas select * from deleted --删除的记录信息 print records deletedgo威迅教育开发部监制INSERT 触发器当试图向表中插入数据时,将执行 INSERT 触发器INSERT 触发器执行下列操作:向Inserted表中插入一个新行
显示全部
相似文档