sql server DML,DDL 触发器

本文深入探讨了SQL Server中的两种触发器——DML(数据修改语言)触发器和DDL(数据定义语言)触发器。DML触发器在插入、更新或删除操作后自动执行,用于实现复杂的业务规则和数据验证。DDL触发器则在数据库结构发生变化,如创建、修改或删除表、视图等对象时触发,提供了一种监视和控制数据库更改的方式。通过使用这些触发器,开发者可以确保数据的完整性和一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--触发器在进行工作的时候,会产生两个临时的用于记录更改前后变化的表:INSERTED表和DELETED表
use SRS
go
-- 设计一个触发器 TR_S,当在数据表 S 中删除一个学生的记录后,删除该学生在数据表 SC 中的记录。
create trigger tr_s on s
after delete 
as delete from SC where SC.SNo IN(SELECT SNo FROM DELETED) go delete from s where sno='11001' select *from S select *from SC
use Sales
--1、在sales数据库中,创建触发器tri_goods,当商品销售之后,相应的库存量要有所变化 go
--方法一
create trigger tri_goods on sell
after insert 
as
declare @num int
set @num =(select 数量 from Goods where  商品编号 in (select 商品编号 from inserted))
if(@num<0 )
begin
print'商品数量小于0'
rollback
end
else
begin 
update Goods set 数量=数量-(select 数量 from inserted) where 商品编号 in (select 商品编号 from inserted
go
--方法二
create trigger tri_goods1 on sell
after insert 
as
update Goods 
set 数量=数量-(select 数量 from inserted) where 商品编号 in (select 商品编号 from inserted)
go
--方法三
create trigger tri_goods2 on sell
after insert 
as
update Goods 
set Goods.数量=Goods.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值