在本章第五节我们已经指出SQL Server 2000 支持AFTER 和INSTEAD OF 两种类型
的触发器。其中INSTEAD OF 触发器是SQL Server 2000 的新添加的功能,AFTER 触发
器等同于以前版本中的触发器。当为表或视图定义了针对某一操作(INSERT、 DELETE、
UPDATE) 的INSTEAD OF 类型触发器且执行了相应的操作时,尽管触发器被触发,但
相应的操作并不被执行,而运行的仅是触发器SQL 语句本身。
INSTEAD OF 触发器的主要优点是使不可被修改的视图能够支持修改。其中典型的例
子是分割视图(partitioned view)。为了提高查询性能,分割视图通常是一个来自多个表
的结果集,但是也正因此而不支持视图更新。下面的例子说明了如何使用INSTEAD OF触发器来支持对分割视图所引用的基本表的修改。
此时能够成功执行插入语句 insert into saleview values (‘jul001’,’先科VCD’,200)。
INSTEAD OF 触发器的另外的优点是,通过使用逻辑语句以执行批处理的某一部分而
放弃执行其余部分。比如,可以定义触发器在遇到某一错误时,转而执行触发器的另外部
分。