SQL SERVER 2008 使用INSTEAD OF触发器
INSTEAD OF触发器被用于更新那些没有办法通过正常方式更新的视图。通常不能在一个基于连接的视图上进行DELETE操作,可以编写一个INSTEAD OF DELETE触发器来实现删除。可以访问那些如果视图是一个真正的表时已经被删除的数据行,它将把删除的行存储在deleted临时表中。
本次练习将通过具体的例子介绍如何使用INSTEAD OF触发器,使读者掌握INSTEAD OF触发器的使用方法。
向student表中插入数据时,检查学号是否存在于 student 表中,如存在则进行插入操作,否则就不插入,具体语句如下所示:
雪莲的功效>10年后的我CREATE TRIGGER [checkid]
ON dbo.student
INSTEAD OF inrt
AS
IF NOT EXISTS(SELECT * FROM dbo.student WHERE ID=(SELECT ID FROM INSERTED))
BEGIN
ROLLBACK TRANSACTION
老虎狗 PRINT '要处理记录的学号不存在!'
南瓜面粉饼
END
ELSE
BEGIN
INSERT INTO dbo.student lect * from inrted
针孔打印机 PRINT '已经成功处理记录!'
END
执行以上代码后,然后,输入以下代码进行测试,代码如下:
INSERT INTO dbo.student
VALUES(6,'史琳达','女',20,'006')
执行以上代码测试结果8-10所示:廉洁观后感>水果苹果的资料
图8-10 instead of 触发器
然后,输入以下测试及查询代码,结果如图8-11所示:
东莞下坝坊
图8-11 测试结果