SQL Server触发器
一、大致介绍
1、结构

(1)动作时间:BEFORE、AFTER、INSTEAD OF
(2)触发事件:UPDATE、DELETE、INSERT
(3)目标表(ON)
(4)触发动作
①动作间隔尺寸:FOR EACH ROW | STATEMENT
②动作事件条件:WHERE
③动作体:SQL语句
2、例子
①BEFORE行级触发器
CREATE TRIGGER INSERT_OR_UPDATE_SALARY BEFORE INSERT OR UPDATE ON Teacher FOR EACH ROW /*行级触发器*/ AS
BEGIN IF (new.Salary < 4000) THEN new.Salary =4000 END IF END
②AFTER行级触发器
CREATE TRIGGER INSERT_SALARY AFTER INSERT ON Teacher FOR EACH ROW AS
BEGIN INSERT INTO Salary_log VALUES(new.Eno, new.Salary, CURRENT_USER, CURRENT_TIMESTAMP)
END
③ RAISERROR
CREATE TRIGGER TRIG_OD_UPDATE ON [Order Details] FOR UPDATE AS IF UPDATE (OrderID) BEGIN RAISERROR ('OrderID number cannot be modified.', 10, 1) ROLLBACK TRANSACTION END
msg_str:用户定义消息
severity:严重级别 [0,10],不会跳到catch;[11,19],跳到catch;[20,无穷),则直接终止数据库连接;
state: 介于 1 至 127 之间的任意整数。(state 默认值为1)
二、基本语法
1、创建
CREATE TRIGGER <触发器名>
ON <表名> FOR INSERT/DELETE/UPDATE AS UPDATE <表名> SET FROM WHERE
2、删除
DROP TRIGGER <触发器名>
参考来源:
https://www.cnblogs.com/xugang/archive/2011/04/09/2010216.html

浙公网安备 33010602011771号