简述触发器

    触发器里有两个临时表,一个是Deleted 表,一个是 Inserted表 。

    很好的理解触发器的两个临时表(Deleted , Inserted)在触发事务过程中的作用,是熟练使用触发器的前提!

 

    下面具体的介绍DELETED表和INSERTED表:
                            虚拟表Inserted                    虚拟表Deleted

在表记录 新增时      存放新增的记录                     不存储记录
             修改时      存放用来更新的新记录            存放更新前的记录

             删除时      不存储记录                           存放被删除的记录

 

创建触发器:

CREATE TRIGGER 触发器名

ON 表名

FOR DELETE|UPDATE|INSERT

AS

/*T-SQL*/

 

实例:

--创建测试表

CREATE TABLE A01
(
CODE VARCHAR(10),
NUMBER DECIMAL(18,4)
)
GO


CREATE TABLE A02
(
CODE VARCHAR(10),
NUMBER DECIMAL(18,4)
)

 

--插入测试数据

INSERT INTO A01
SELECT '1001',14
UNION
SELECT '1002',21
UNION
SELECT '1003',15
GO

INSERT INTO A02
SELECT '1001',15
UNION
SELECT '1002',18
UNION
SELECT '1003',20
GO

 

--创建触发器

ALTER TRIGGER NUM
ON A01
FOR UPDATE
AS
IF UPDATE(NUMBER)
BEGIN
UPDATE A02 SET A02.NUMBER=A02.NUMBER-(I.NUMBER-D.NUMBER)
              FROM INSERTED I,DELETED D
              WHERE A02.CODE=I.CODE AND I.CODE=D.CODE
END

/*一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除 Student记录并写入新纪录。*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值