Sql触发器
触发器的概述
触发器是一个特殊的存储过程,触发器是对表进行新增、更新、删除的时候会自动执行的特殊存储过程。
有两种触发器
触发器分为
1、 after触发器(之后触发)
a、 insert触发器
b、 update触发器
c、 delete触发器
2、 instead of 触发器 (之前触发)
after触发器
after触发器只有在执行,insert、update、delete之后触发器才会触发。
instead of触发器
instead of触发器只执行本身(触发器)。
触发器的优点
1,有助于完整性
2,可以实现数据库的层叠更改
after触发器的使用
after触发器的使用
select * from Books
select * from BookType
insert Books values('5G','猛',1)
delete Books where id=4
update Books set TypeID=2 where ID=1
--创建一个触发器,当我在Books表加一条数据时,触发一个事件
---这个事件将会在booktype表中,给对应新增书分类,库存+1
--新增
go
create trigger tri_Add
on books for insert
as
declare @typeID int
select @typeID=TypeID from inserted
update BookType set Nums=Nums+1 where id=@typeID
--删除
go
create trigger tri_D
on books for delete
as
declare @typeID int
select @typeID=TypeID from deleted
update BookType set Nums=Nums-1 where id=@typeID
--修改
go
create trigger tri_kjkj
on books for update
as
declare @typeID int
declare @typeIDNew int
select @typeID=TypeID from deleted
select @typeIDNew=TypeID from inserted
update BookType set Nums=Nums-1 where id=@typeID
update BookType set Nums=Nums+1 where id=@typeIDNew