--触发器在进行工作的时候,会产生两个临时的用于记录更改前后变化的表: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.
sql server DML,DDL 触发器
最新推荐文章于 2025-05-02 06:00:00 发布