@SQL
触发器的定义
触发器是一种专用类型的存储过程,它被捆绑到SQL Server 的表格或者视图上。
可以将表或视图比作汽车,当你踩下刹车时就会触发汽车刹车,踩下油门时就会触发加速,油门和刹车就是一种“触发器”。
实例这是books表这是booktype表
其中,books表中的typeid是booktype表中的主键,也就是外键关系。这是books表中的数据。这是booktype表中数据
下面展示一些 创建触发器的语句
。
// create trigger 触发器名 on 表名 for insert/delete/update as SQL语句
//下面例子是创建一个名为TriAdd的触发器,其作用是在books表插入一本新书时,boottype表中的Nums字段中的值进行相应的+1!
go
create trigger TriAdd
on Books for insert
as
declare @typeid int
select @typeid=TypeID from inserted(inserted(这是数据库自带的两个表之一):插入数据前,系统会把相对应的表中数据存储在这里)
update BookTypes set nums=Nums+1 where id=@typeid
插入的数据(在此操作之前,两表中的数据没有变化,依旧如上图两表数据一致):
插入后(数据更新后):
它会显示两行受影响,让我们再查询一下booktype表的数据:
这是修改后的数据👆
这是修改前的数据👆
很明显我们可以看出科技类的Nums加了1,这就是触发器的基本运用了。
谢谢大家!