触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。SQL的触发器是一个能由系统自动执行对数据库修改的语句。 1.可在写入数据表前,强制检验或转换数据。 触发器与存储过程的唯一区别是触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行。 SQL Server 包括三种常规类型的触发器: after代表触发器里面的命令在DML修改数据之后执行。 before举例: 在emp表上面创建触发器,当输入的工资小于1000时,自动将工资修改为1000。 触发器可通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制用比CHECK约束定义的约束更为复杂的约束。与 CHECK 约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一个表中的 SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。 新增: 修改: 删除: ==参考资料
触发器
触发器的定义
触发器的作用
2.触发器发生错误时,异动的结果会被撤销。
3.部分数据库管理系统可以针对数据定义语言(DDL)使用触发器,称为DDL触发器。
4.可依照特定的情况,替换异动的指令 (INSTEAD OF)。触发器的与存储过程的唯一区别
触发器的分类
1.After 触发器
2.Before触发器
before代表触发器里面的命令在DML修改数据之前执行
create or replace trigger tri_emp_sal_check before INSERT OR UPDATE ON emp for each row BEGIN IF :new.sal <1000 THEN :new.sal :=1000; END IF; END;
3.登录触发器
登录触发器将为响应 LOGIN 事件而激发存储过程。与 SQL Server 实例建立用户会话时将引发此事件。登录触发器将在登录的身份验证阶段完成之后且用户会话实际建立之前激发。因此,来自触发器内部且通常将到达用户的所有消息(例如错误消息和来自 PRINT 语句的消息)会传送到 SQL Server 错误日志。如果身份验证失败,将不激发登录触发器。
触发器的优点
常用触发器示例
//insert create trigger tri_insert on student for insert as declare @student_idchar(10) select @student_id=s.student_id from students inner join insertedion s.student_id=i.student_id if @student_id='1' begin raiserror('不能插入1的学号!',16,8) rollbacktran end
go update create trigger tri_update on student for update as if update(student_id) begin raiserror('学号无法修改!',16,8) rollbacktran end
go delete create trigger tri_delete on student for delete as declare @student_idvarchar(10) select @student_id=student_id from deleted if @student_id='admin' begin raiserror('错误',16,8) rollbacktran end
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算