1 触发器的概念
sql
触发器是⼀一类特殊的存储过程,其特殊性在于它 并不须要由⽤用户来直接调⽤用,⽽而是在对表或视图发出 Insert 、Update或Delete语句时⾃自动触发执⾏行的。所以,可将触发器当作是信息的后过滤器。加密
使⽤用触发器主要会利⽤用到两张很重要的逻辑表:deleted表和inserted表。这两张逻辑表有系统建立,并存在内存中。也称为虚 拟表。是只读的、不可修改的。当触发器执⾏行完毕后,将会被删 除。这两张表存放了⽤用户对表的操做数据。 spa
格式:
code
Create trigger 触发器名称 On 表名 With encryption For insert,Update,delete As Sql语句 Go
insert触发器内存
任务:在Users表中建立名为tr_user1的触发器,要求当 添加⼀一个新⽤用户时,能立刻显⽰示添加的新⽤用户信息。 新的记录信息在inserted表 Create trigger tr_user1 On users for insert as select * from inserted go
delete触发器it
任务:在Users表中建立名为tr_user2的触发器,当删除⼀个⽤户于时,要求以下: 一、立刻显⽰示被删除的⽤用户信息。 二、能输出信息:被删除的⽤用户是** Create trigger tr_user2 on users for delete as select * from deleted select ‘被删除的用户是’+(select username for deleted) go
update触发器io
任务:在Users表中建立名为tr_user3的触发器,要求当修改一个⽤用户信息时,能立刻显⽰示该⽤用户修改前和修改后的信息。 Create trigger tr_user3 on users for update as select * from deleted select * from inserted go
练习class
任务: 本⽉月25⽇日编号为9702的职员销售了货号为1001,货名为CPU的货物4个,销售价格为1000元。要求当插⼊入销售记录时,能⾃自动修改库存表中的卖出数量。 create trigger tr_sell on sell with encryption for insert as update stock set sale_num = sale_num+(slelct sel_num for inserted) where ware_id = (select ware_id from inserted) go
修改触发器date
alter trigger 触发器名select
重命名触发器
sq_rename 触发器原来的名字,新名字
删除触发器
drop trigger 触发器名
查看触发器
查触发器的信息 sp_help 触发器名字
查看表的触发器类型 sp_helptrigger 触发器所属表的名称
查看未加密的触发器定义 sp_helpText 触发器名称
查看触发器的依赖关系 sp_depends 触发器名称