mssql instead of 触发器简介


一、instead of 触发器简介

instead of触发器功能:代替”表或试图对象”进行 数据插入 数据更新 删除删除操作。

如果一个表或视图存在一个 instead of insert or update or delete 触发器,
那么当我们对表执行 insert into [表] … update [表] … delete from [表] 时,此时sql语句,并不直接对表进行操作,而是将这些操作交给instead of 触发器进行操作,
此时我们可以在触发器中放入一些复杂的(逻辑)判断,达到数据验证的目的。
instead of 触发器注意事项:
———————-**********————————-
一个表只能拥有一个instead of 触发器
———————-**********————————-


二、instead of 触发器举例说明

/*建表*/
create table A(keyId int,info varchar(20))
go

/*创建 instead of 触发器*/
create trigger tr_A on A 
instead of insert ,update ,delete 
as 
begin
 select '禁止对表进行任何操作'   ---将对表 insert update delete 全部锁定禁止操作
 return;
end
go
 
insert into A (keyId,info)values(1,'aa')
go
 
truncate table A
drop table A 
go