| 
                         用户执行delete操作,就会激活delete触发器,从而控制用户能够从数据库中删除数据记录,触发delete触发器后,用户删除的记录会被添加到deleted表中,原来表的相应记录被删除,所以在deleted表中查看删除的记录。 
- --创建delete触发器 
 - create trigger trig_delete 
 - on student  
 - after delete 
 - as 
 - begin 
 -  select stu_id as 已删除的学生编号,stu_name stu_gender,stu_age 
 -  from deleted 
 - end; 
 - --执行一一条delete语句触发trig_delete触发器 
 - delete from student where stu_id=1; 
 
  
4. 创建UPDATE触发器 
update触发器是当用户在指定表上执行update语句时被调用被调用,这种类型的触发器用来约束用户对数据的修改。update触发器可以执行两种操作:更新前的记录存储在deleted表中,更新后的记录存储在inserted表中。 
- --创建update触发器 
 - create trigger trig_update 
 - on student 
 - after update 
 - as 
 - begin 
 -  declare @stuCount int; 
 -  select @stuCount=count(*) from student; 
 -  update student_sum set stuCount =@stuCount; 
 -  select stu_id as 更新前学生编号,stu_name as 更新前学生姓名 from deleted 
 -  select stu_id as 更新后学生编号,stu_name as 更新后学生姓名 from inserted 
 - end 
 - --创建完成,执行一条update语句触发trig_update触发器 
 - update student set stu_name='张飞' where stu_id=2; 
 
  
五、管理触发器 
1. 查看触发器 
(1).查看数据库中所有的触发器 
- --查看数据库中所有的触发器 
 - use 数据库名 
 - go 
 - select * from sysobjects where xtype='TR' 
 
  
sysobjects 保存着数据库的对象,其中 xtype 为 TR 的记录即为触发器对象。在 name 一列,我们可以看到触发器名称。 
(2).sp_helptext 查看触发器内容 
- use 数据库名 
 - go 
 - exec sp_helptext '触发器名称' 
 
  
将会以表的样式显示触发器内容。 
除了触发器外,sp_helptext 还可以显示 规则、默认值、未加密的存储过程、用户定义函数、视图的文本。 
(3).sp_helptrigger 用于查看触发器的属性 
sp_helptrigger 有两个参数:第一个参数为表名;第二个为触发器类型,为 char(6) 类型,可以是  INSERT、UPDATE、DELETE,如果省略则显示指定表中所有类型触发器的属性。 
- use 数据库名 
 - go 
 - exec sp_helptrigger tableName 
 
  
2. 禁用启用触发器 
    - 禁用:alter table 表名 disable trigger 触发器名称
 
    - 启用:alter table 表名 enable trigger 触发器名称
 
 
如果有多个触发器,则各个触发器名称之间用英文逗号隔开。 
如果把“触发器名称”换成“ALL”,则表示禁用或启用该表的全部触发器。 
3. 修改触发器 
- --修改触发器语法 
 - ALTER TRIGGER trigger_name  
 -  ON table_name  
 -  [ WITH ENCRYPTION ]  
 -  FOR {[DELETE][,][INSERT][,][UPDATE]} 
 -  AS 
 -  sql_statement; 
 
  
4. 删除触发器 
-  --语法格式: 
 -  DROP TRIGGER { trigger } [ ,...n ] 
 - 参数: 
 -  trigger: 要删除的触发器名称 
 -  n:表示可以删除多个触发器的占位符  
 
  
【编辑推荐】 - MySQL数据库如何快速获得库中无主键的表
 - 商用数据库之死:Oracle 面临困境
 - 推荐MySQL数据库中避免写入重复数据的4种方式
 - MySQL数据库基础操作命令
 - 微服务的数据库设计
  【责任编辑:赵宁宁 TEL:(010)68476606】 
            点赞 0                        (编辑:滁州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |