CREATE TRIGGER trigger_name[触发器名称]
ON table_name[表名]
instead of/for before [insert、update、delete]
AS
BEGIN
....触发器执行体....
END
GO
注释:[]中的为中文解释;
DML触发器分为两种:
前置触发:instead of
后置触发:for before
insert :后置插入触发
update :后置修改触发
delete :后置删除触发
写法:for [insert、update、delete];before可省略不写
2、定义变量语法
1、declare @变量名 数据类型 数据长度;
实例: declare @num int(100);
2、变量赋值
SET 变量名 = value;(给一个变量赋值)
实例:SET @num = 99;
select @age = age from client where name = @name ; (查询客户张三的年龄赋值给@age变量;可给多个变量赋值)
3、if else 的使用
1、单条件 : if update(A) ; --如果A字段发生改变,执行某某操作
2、两条件 :if update(A){
执行操作
}ELSE {
执行操作
};
3、多条件: if update(A) or delete(A) ; --多条件中需要指明触发器
DROP TRIGGER
IF
EXISTS nhdc_cloud_xwh_house_online.trigger_uptShowName;
CREATE TRIGGER trigger_uptShowName BEFORE UPDATE ON nhdc_cloud_xwh_house_online.xwh_project
FOR EACH ROW
BEGIN
SET @old_project_code = old.project_code;
IF
old.show_name <> new.show_name THEN
UPDATE nhdc_cloud_customer.xwh_team_group_staff
SET project_name = new.show_name
WHERE
project_code = @old_project_code;
UPDATE nhdc_cloud_customer.o_d_broker
SET project_name = new.show_name
WHERE
project_code = @old_project_code;
END IF;
END;