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。
触发器作用:
它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。
实例
--当我在书籍表插入一条数据书,触发一个事件:
--这个事件,将会自动在分类表,将概述及对应的类别的库存加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
上一篇: 数据学习(九)-参数估计实践
下一篇: 数据学习(十七)-时间序列分析和预测实践
推荐阅读
-
Oracle8i和MS SQL Server7.0比较
-
自定义用于ASP Web站点的 SQL 7.0 数据库(1)
-
mysql中备份还原.sql/zip/sql.zip/gzip文件方法
-
在SQL中该如何处理NULL值
-
Oracle体系结构及备份(四)server-process
-
T-Sql(四)表关联和视图(view)
-
解决mysql时区与系统时区不一致问题。异常:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized o
-
PHP中的$_SERVER["HTTP_REFERER"]用法浅谈
-
linux下配置lamp时候出现The requested URL /info.php was not found on this server问题
-
一篇文章带你深入了解Mysql触发器