概述
触发器里有两个临时表,一个是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记录并写入新纪录。*/
最后
以上就是舒心墨镜为你收集整理的简述触发器的全部内容,希望文章能够帮你解决简述触发器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复