SQL SERVER 2008 使用INSTEAD OF触发器
INSTEAD OF触发器被用于更新那些没有办法通过正常方式更新的视图。通常不能在一个基于连接的视图上进行DELETE操作,可以编写一个INSTEAD OF DELETE触发器来实现删除。可以访问那些如果视图是一个真正的表时已经被删除的数据行,它将把删除的行存储在deleted临时表中。
本次练习将通过具体的例子介绍如何使用INSTEAD OF触发器,使读者掌握INSTEAD OF触发器的使用方法。
向student表中插入数据时,检查学号是否存在于 student 表中,如存在则进行插入操作,否则就不插入,具体语句如下所示:
CREATE TRIGGER [checkid]
ON dbo.student
INSTEAD OF insert
AS
IF NOT EXISTS(SELECT * FROM dbo.student WHERE ID=(SELECT ID FROM INSERTED))
BEGIN
ROLLBACK TRANSACTION
PRINT '要处理记录的学号不存在!'
sqlserver2008怎么下载 END
ELSE
BEGIN
INSERT INTO dbo.student select * from inserted
PRINT '已经成功处理记录!'
END
执行以上代码后,然后,输入以下代码进行测试,代码如下:
INSERT INTO dbo.student
VALUES(6,'史琳达','女',20,'006')
执行以上代码测试结果8-10所示:
图8-10 instead of 触发器
然后,输入以下测试及查询代码,结果如图8-11所示:
图8-11 测试结果
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论