clwn.net
当前位置:首页 >> sql触发器 upDAtE >>

sql触发器 upDAtE

INSERT: 表1 (ID,NAME)表2 (ID,NAME)当用户插入表1数据后,表2也被插入相同的数据CREATE TRIGGER TRI1ON 表1FOR INSERTASBEGIN INSERT INTO 表2 SELECT * FROM INSERTEDENDGO DELETE: 表1 (ID,NAME)表2 (ID,AGE,GENDER)当用户删除表1某条ID的数...

update是先delete,再insert比较inserted与deleted值就好了

DECLARE @IsInsert bit, @IsUpdate bit, @IsDelete bit IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted) SET @IsInsert = 1 ELSE SET @IsInsert = 0 IF EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM del...

create trigger trg_del on 表名 for update as begin update 表名 set 禁止字段=deleted.禁止字段 where exists( select * from deleted where 表名.主键=deleted.主键) --把被改动的数据重新更新回来 end

触发器里面有个专用表 deleted ,这个表存储了更新/删除前相应记当的状态,因此,可以查询 deleted 表里面的数据实现获取更新前的值。 注:相应地,还有一个表 inserted 存储即将更新/插入的字段值。

sql 触发器,根据指定字段是否更新触发的方法: 一、使用update(字段名称) 函数的返回值来做判断 二、例:表格 tt 1、创建 触发器 ‘tgr_test’,判断V2字段是否更新,如果更新,检索显示 ‘V2更新’ 2、测试更新v2字段,检索显示‘V2更新’ 3、测试更...

create trigger up_salary on employee INSTEAD OF update as if update (salary) begin declare @newSalary numeric(10,2) declare @oldSalary numeric(10,2) select @newSalary = salary from updated select @oldSalary = salary from employ...

DML触发器有三类: 1, insert触发器; 2, update触发器; 3, delete触发器; 触发器的组成部分: 触发器的声明,指定触发器定时,事件,表名以类型 触发器的执行,PL/SQL块或对过程的调用 触发器的限制条件,通过where子句实现 类型: 应用程...

触发器能应该正常被触发. 问题在于你的条件if @amount = null, 这个表达式的结果永远都是false, 故你的update语句不会被执行. 要改成if @amount is null.

要比较 Deleted 和 Inserted 2表中的值是否一致 ,才能确定字段是否被修改了。 如果字段A修改前是AAA修改后也是AAA,那也会触发 if update(字段A) 成立 。

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com