触发器更新

文献种类:触发器更新
开发工具与关键技术:Oracle
做者:赖俏萍;年级1701;撰写时间:2019年4月17日
文献编号: 归档时间: 年 月 日
触发器更新
一、 触发器更新
原理:可将UPDATE语句当作两步操做:即捕获数据前像(before image)的DELETE语句,和捕获数据后像(after image)的INSERT语句。当在定义有触发器的表上执行UPDATE语句时,原始行(前像)被移入到deleted表,更新行(后像)被移入到inserted表。
触发器检查deleted表和inserted表以及被更新的表,来肯定是否更新了多行以及如何执行触发器动做。
可使用IF UPDATE语句定义一个监视指定列的数据更新的触发器。这样,就可让触发器容易的隔离出特定列的活动。当它检测到指定列已经更新时,触发器就会进一步执行适当的动做,例如发出错误信息指出该列不能更新,或者根据新的更新的列值执行一系列的动做语句。
一、 专业信息ID修改,对应的学生信息中专业ID也相应进行修改
IF OBJECT_ID (N’TRIGER_Majors_Update’, N’tr’) IS NOT NULL
DROP TRIGGER TRIGER_Majors_Update;
GO
CREATE TRIGGER TRIGER_Majors_Update
ON Majors
FOR UPDATE
AS
IF UPDATE(ID)
UPDATE Students Set MajorID=inserted.ID
FROM Students,deleted,inserted
WHERE Students.MajorID = deleted.ID
执行更新操做:
UPDATE Majors SET ID=12 WHERE ID=11
执行结果:web

在这里插入图片描述