sqlserver創建使用觸發器

本文介绍SQL Server中触发器的创建语法及工作原理。触发器能在特定表的数据被更改时执行,如INSERT、DELETE或UPDATE操作。文章详细解释了系统如何通过inserted和deleted两个临时表跟踪这些更改。

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

一般地,创建触发器的语法如下:
Create Trigger触发器名称
On 表名|视图名 --指定所创建的触发器与某个已存在的表或视图关联 For {Insert, Delete, Update} --指定触发器的类型(即插入,删除,更新或它们的任意组合)
As
SQL语句 --指定触发器的动作

工作原理
对于每个触发器,SQL Server都会自动创建2个临时工作表,即inserted表和deleted表,这2个表作为系统的专用表存放于内存中,其结构与被作用的表相同,且在触发行为结束后自动被删除。
下面分别说明inserted和deleted这二个工作表与客户端发出的Insert,Delete或Update请求的关系。

请求 工作表名称 工作表内容
Insert Inserted 被插入的行
Deleted /

Delete Inserted /
Deleted 被删除的行

Update Inserted 被插入的行
Deleted 被删除的行


IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'triUpdPartsQty'
AND type = 'TR')
DROP TRIGGER triUpdPartsQty
GO

CREATE TRIGGER triUpdPartsQty
ON Part_s
FOR UPDATE
AS

If UPDATE(PS_QTY) OR UPDATE(PS_AVAILABLE)
BEGIN
update Part_s set UPD_DATE= convert(nvarchar(8),getdate(),112) from Part_s ps
inner join Inerted i on ps.P_NO=i.P_NO and ps.S_NO=i.S_NO
END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值