触发器与游标PPT课件
encryption可以加密触发器中的代码,增加安 全性。 事后触发器只能定义在表,不能定义到视图上; 而替代触发器可以定义在视图上。
2021
7
实例1: 创建一个触发器,当对仓库表update 时,创建一个数据库新表并向新表中插入三 条记录(P194)
Create trigger hytrigger1 on 仓库 for update as
2021
12
8.1.7 删除触发器(P196)
drop trigger 触发器名
2021 广西大学信息网络中心 卢豫开 13
实例2: 触发器的管理操作(P196)
Use 企业销售管理系统 Exec sp_help 'hytrigger1' Exec sp_helptext 'hytrigger1'
当对某一个表进行update、delete、insert等 操作时,SQLServer会自动执行触发器所事先 定义好的语句。
2021 广西大学信息网络中心 卢豫开 2
8.1.1 触发器的作用(P192)
触发器的主要作用是能实现主键和外键所不能 保证的、复杂的参照完整性和数据的一致性。
1.可以调用存储过程 2.强化数据条件约束 3.跟踪数据库内数据变化 4.级联合并运行 5.总之触发器可以解决高级形式的业务和复杂
通过sp_help能够查看触发器的基本信息,包 括触发器名、所有者、创建者和创建时间。语 法格式为:
Exec sp_help 触发器名
2021 广西大学信息网络中心 卢豫开 9
8.1.5 查看触发器代码(P196)
用sp_helptext能查看触发器SQL的代码信息, 但在创建触发器时使用了with encryption选 项,则执行该命令也看不到SQL代码。
2021 广西大学信息网络中心 卢豫开 14
将195页触发器例题修改
(P197)
alter trigger hytrigger1 on 仓库 for insert as Begin Create table triuser( Userid int identity (1,1) primary key, Username varchar(50), Userpwd varchar(50) ) Insert into triuser(username,userpwd)
2021 广西大学信息网络中心 卢豫开 4
8.1.3 创建与执行触发器(P193)
创建事后触发器: Create trigger 触发器名 on 表名[with
encryption] for insert[,update,delete] as Begin 命令行或程序块 End
2021 广西大学信息网络中心 卢豫开 5
2021 广西大学信息网络中心 卢豫开 11
8.1.6 修改替代触发器(P196)
alter trigger 触发器名 on 表名或视图名 instead of insert[,update,delete] as
Begin 命令行或程序块 End 修改触发器与创建触发器几乎相同,只是将
create改为alter即可。
第8章 触发器与游标
触发器是客户/服务器数据库的一种关键特 性。使用触发器,开发人员可以在数据库引擎上 稳固的实现复杂的、定制的业务。
游标是一种机制,对表中检索出的数据进行 操作的灵活手段。
2021 广西大学信息网络中心 卢豫开1
8.1 触发器 (P192)
触发器是一种特殊类型的存储过程,不同于前 面所讲的存储过程,主要通过事件触发而被执 行。
Insert into triuser(username,userpwd) values('hy2','222')
ห้องสมุดไป่ตู้
Insert into triuser(username,userpwd) values('hy3','333')
end
2021 广西大学信息网络中心 卢豫开 8
8.1.4 查看触发器基本信息 (P195)
8.1.3 创建替代触发器(P194)
Create trigger 触发器名 on 表名或视图名 instead of insert[,update,delete] as
Begin 命令行或程序块 End
2021
6
触发器的有关规则与条件
触发器名在数据库中是唯一的 触发器只能关联表或视图,利用with
values('hy1','111') Insert into triuser(username,userpwd)
values('hy2','222') Insert into triuser(username,userpwd)
values('hy3','333') Insert into triuser(username,userpwd) values('hy4',
Begin
Create table triuser(
Userid int identity (1,1) primary key,
Username varchar(50),
Userpwd varchar(50) )
Insert into triuser(username,userpwd) values('hy1','111')
行为限制,实现定制记录。
2021 广西大学信息网络中心 卢豫开 3
8.1.2 触发器的分类(P193)
1.事后触发器----只能定义在表上,可以针对 表的同一操作定义多个触发器。在表上只能为 每一个insert、update、delete操作指定一个 事后触发器。
2.替代触发器并不执行预定的动作,而仅仅执 行触发器本身的代码。对于每种操作insert、 update、delete只能定义一个替代触发器。
Exec sp_helptext 触发器名
2021 广西大学信息网络中心 卢豫开 10
8.1.6 修改触发器(P196)
修改事后触发器: alter trigger 触发器名 on 表名[with
encryption] for insert[,uodate,delete] as Begin 命令行或程序块 End