新人分享心得Sql触发器

Sqlserver触发器(Trigger)

触发器的定义

触发器是一种专用类型的存储过程,它被捆绑到SQL Server 的表格或者视图上。当这个表发生了Insert、Update或Delete操作时,会自动激活执行的,可以处理各种复杂的操作。

触发器作用

强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。

创建SQL Server触发器
create  trigger   tri_  --(触发器名称)
on Books for insert--(事件类型)
as
--(触发的事件)
临时表
```sql
--系统默认有两个表
  --inserted 装新增的数据(新插入的)
  --deleted  装旧数据(删除之前的)
        --1 战国 10  deleted删除旧的
  --1 战天 12  inserted新增新的
事例

两张表
在这里插入图片描述在这里插入图片描述
新增

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

修改

--修改
create trigger tri_update
on Books for update
as
    declare @typeiDa int, @typeiDb int
  select @typeiDa=TypeID from inserted
  select @typeiDb=TypeID from deleted
  
  update bookType set nums=Nums+1 where ID=@typeiDa
  update bookType set nums=Nums-1 where ID=@typeiDb

删除

create trigger tri_delete
on Books for delete
as
    declare @typeiD int 
  select @typeiD=TypeID from deleted
  update bookType set nums=Nums-1 where ID=@typeiD
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值