欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQL SERVER触发器

程序员文章站 2022-03-09 09:12:24
...

SQL SERVER触发器

触发器定义:
即当发生某一事件时,如果满足给定条件,则执行相应的动作。
触发器是一种专用类型的存储过程,它被捆绑到SQL Server 的表格或者视图上。
SQL Server 支持两种类型的触发器AFTER 触发器和INSTEAD OF 触发器,其中、AFTER 触发器要求只有执行某一操作ISERT, UPDATE ,DELETE 之后触发器才被触发
1)INSTEAD OF 触发器表示并不执行其所定义的操作INSERT,UPDATE ,DELETE,而仅是执行触发器本身,既可在表上定义INSTEAD OF 触发器,也可以在视图上定义INSTEAD OF 触发器。
2)after 触发器(也叫“FOR”触发器)则会在触发 insert、update 或是delect 动作之后执行。
触发事件分为三类:UPDATE、DELETE和INSERT。

触发器作用:
它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。
实例
SQL SERVER触发器SQL SERVER触发器

--当我在书籍表插入一条数据书,触发一个事件:
--这个事件,将会自动在分类表,将概述及对应的类别的库存加1
go
create trigger tri_add
on Books for insert
as
--修改分类表的库存
declare @typeID int
select @typeID=TypeID from inserted
update bookTyoe set nums=Nums+1 where aaa@qq.com

--当我在书籍表删除一条数据书,触发一个事件:
--这个事件,将会自动在分类表,将概述及对应的类别的库存加-1
go
create trigger tri_delete
on Books for delete
as
--修改分类表的库存
declare @typeID int
select @typeID=TypeID from deleted
update bookTyoe set nums=Nums-1 where aaa@qq.com

--修改书籍表的分类时,bootstrap分类,有2改为3的时候
--分类表的库存怎么修改,2的类的要减1 3的分类+1
go 
create trigger tri_update
on Books for update
as
declare @newTypeID int
declare @oldTypeID int
select @newTypeID=TypeID from inserted
select @oldTypeID=TypeID from deleted
update bookTyoe set Nums=nums-1 where aaa@qq.com
update bookTyoe set Nums=Nums+1 where aaa@qq.com
相关标签: sql